본문 바로가기

Cloud

(29)
(Kubernetes) - resouce 생성 예시 file 🍳머리말 k8s resouce를 code 복붙으로 최대한 쉽게 만들어 test해보기 위한 예시들입니다. {}로 감싸진 부분은 직접 입력해야합니다. 계속 갱신 예정 📕storageclassname으로 pvc, pv, pod생성 storage가 이미 있는 경우 해당 storage를 dynamic volume이 이용하기 위해 설정된 file을 이용하는 예제입니다. {차례대로 아래로 적용해줍니다. 📔 PVC apiVersion: v1 kind: PersistentVolumeClaim metadata: name: task-pv-claim spec: storageClassName: {storageclass명} accessModes: - ReadWriteOnce resources: requests: storage: ..
(Redis Operator) - 설치방법 🍳머리말 OT-Container-Kit의 Redis Operator 설치방법입니다. 📕참조 📔 redos operator docs 📕Prerequisites 📔 k8s(v1.11+) cluster 📕설치 📔 helm으로 설치가 안되는 issue https://github.com/OT-CONTAINER-KIT/helm-charts/issues/17 📔 참조의 최하단에서 manifest file을 직접 apply하는 방법 사용 kubectl apply -f https://raw.githubusercontent.com/OT-CONTAINER-KIT/redis-operator/master/config/crd/bases/redis.redis.opstreelabs.in_redis.yaml kubectl apply ..
(kubernetes) - resource삭제 시 terminating 상태에서 멈춤 🍳머리말 k8s cluster의 resource들을 지울 때 종종 terminating상태에서 멈춰있는 경우가 있습니다. {}부분은 직접 입력해야하는 부분입니다. 📕 kubectl server로 curl 📔 namespace 강제 삭제 curl 명령어로 해당 finalizers를 끄는 temp json file을 작성해 namespace의 api를 호출해 해당 file을 넣음으로써 가능합니다. ( NAMESPACE=olm kubectl proxy & kubectl get namespace $NAMESPACE -o json |jq '.spec = {"finalizers":[]}' >temp.json curl -k -H "Content-Type: application/json" -X PUT --data-bi..
(Kubernetes) - 명령어 모음 🍳머리말 k8s(v1.21+)에서 쓸만한 명령어 모음집입니다. 추가예정 📕 API Resource 📔 kubectl -n [namespace명] get all 📑 기능 특정 namespace의 모든 resource 확인 📔 kubectl api-resources 📑 기능 cluster의 가용한 resources명, 약어, APIVERSION, namespace여부, resource KIND를 볼 수 있는 명령어 📕 APIservices 📔 kubectl get apiservices 📑 기능 전체 api group들의 list 출력 📑 출력결과
(Operator-sdk) - Ubuntu에서 operator project 만들기 🍳머리말 operator sdk를 설치 후 초기화해보는 예제글입니다. {}는 직접 입력해야하는 부분입니다. Ubuntu로 진행합니다. 📕 Background operator sdk는 kube builder라는 k8s controller 개발을 도와주는 tool의 구조를 따르고 있습니다. 관련 설명은 다음 blog에 잘 정리되어 있습니다. https://ssup2.github.io/programming/Kubernetes_Kubebuilder/ Kubernetes Kubebuilder를 이용한 Operator 개발 Memcached 예제를 통해서 Kubebuilder와 Controller를 분석한다. ssup2.github.io 📕 Prerequisite 📔 macOs 또는 linux 기반 os opera..
(Kubernetes) - cluster상에서 WAS-DB 연결 🍳머리말 K8s cluster에서 Provisioned WAS(tomcat)와 DB(mysql)를 연결하는 예제 {}로 감싸진 부분은 직접 입력해야하는 부분입니다. 📕 Prerequisite 📔 Docker 📔 CNI가 설치된 k8s cluster. 📔 Docker Hub 계정 📕 DB(mysql) 준비 📔 namespace 생성 논리적 격리를 위해 namespace를 생성해줍니다. kubectl create namespace [이름] 제 경우는 제 이름을 따서 mskim이라는 namespace를 생성해줬습니다. kubectl create namespace mskim 📔 replicaset 생성 제 namespace로 replicaset을 생성해줍니다. mysql latest image를 사용했습니다. ..
(Kubernetes) - container와 local간 file 이동 🍳머리말 Kubernetes상에서 container와 local간 file 이동방법입니다. kubectl는 자체적으로 cp 명령어를 지원합니다. 📕Container -> Local 📔 명령어 kubectl cp [옮길 file path] [pod name]:[원하는 pod안 file path] 📕Local -> Container 📔 명령어 kubectl cp [pod name]:[원하는 pod안 file path] [옮길 file path]
(Kubernetes) - application에 data 주입 4 🍳머리말 환경 변수로 container에 pod 정보를 노출하는 방법 설명글입니다. k8s cluster가 있어야하며 node가 적어도 3개 있어야 합니다. 📕환경 변수로 container에 pod 정보 노출 📔 설명 pod 및 container field를 실행 중인 container에 노출하는 두 가지 방법이 있습니다. 환경 변수 volume file pod 및 container field를 노출하는 이 두 가지 방법을 downward API라고 합니다. 📔 예시 📑 pod field를 환경 변수의 값으로 사용 하나의 container를 가진 pod를 생성합니다. dap1-envars-pod.yaml apiVersion: v1 kind: Pod metadata: name: dapi-envars-fie..