목록Infra/Kubernetes (25)
Study Memory Work

Secret 컨테이너가 사용하는 구성 정보를 한곳에 모아서 관리. 중요 정보를 base64로 인코딩하여 저장함. 민감하지 않은 정보는 configmap, 민감한 정보는 secret에 저장 # Secret 생성 $ kubectl create secret {generic} eshop-secret --from-literal=PASSWORD=1234 # docker-registry : docker registry접속에 관련된 데이터들 저장 시, # tls : 인증서 관련 데이터 저장 시, # generic : 그 외의 일반적인 데이터 저장 시, # 확인 $ kubectl get secrets $ kubectl describe secrets [문제11] Create a Kubernetes secretReady 작..

ConfigMap 컨테이너 구성 정보를 한 곳에 모아서 관리할 수 있도록 kubernetes에서 지원. key, value 타입으로 이루어진 ConfigMap에 컨테이너 구성 정보를 저장한다. 기존에는 컨테이너 내에 컨테이너의 conf 파일이 존재했다면, ConfigMap에 있는 정보를 컨테이너에 mount시켜주는 형태. ConfigMap 수정 후, pod만 restart해주면 적용이 가능해서 많은 pod를 관리하는데에 용이하다. # Configmap 생성하기 $ kubectl create configmap {configmapNAME} [--from-file=source] [--from-literal=key1=value1] # --from-file : file 자체를 데이터로 가져오기 # --from-l..

pod scheduling 특정 pod를 특정 node에서 실행시키고자 할 때 사용한다. node label 과 node select를 통해서 운영된다. node에 node lable을 설정해두고, deyployment를 이용하여 pod를 생성할 때 nodeSelector에 node label과 같은 value값을 설정해 놓으면, 해당 pod는 해당 lable이 설정되어있는 node에서만 실행된다. node lable 관련 명령어 # node의 label 정보 보기 $ kubectl get nodes --show-labels # node에 label 추가하기 $ kubectl labal {node Name} gpu=true # label기준으로 node 조회하기 $ kubel get node -L gp..
Node Taint & Pod Toleration taint : 어플리케이션 pod를 실행시키게 되면 node의 taint와 매칭이되는 pod toleration이 없는 pod는 taint 되어있는 node에 배치될 수 없다. node의 tain와 동일한 value를 torleration의 value로 가진 pod는 해당 노드에도 scheduling 될 수 있다. node taint, pod toleration worker node에 tain가 설정된 경우 동일 값의 toleration이 있는 Pod만 배치된다. toleration이 있는 Pod는 동일한 taint가 있는 node를 포함하여 모든 node에 배치된다. effect 필드 종류 : NoSchedule : toleration이 맞지 않으면 배..

노드관리 pod가 실행되는 노드인 worker node를 대상으로 특정 worker노드에 scheduling을 허용하거나 금지하고싶을 때, worker node내 pod들을 비워서 cluster member에서 제외하고 싶을 때 등등 Node 스케줄링 중단 및 허용 컨테이너를 포함한 Pod는 node에서 실행됨 node는 Control-plane에 의해 관리 특정node의스케줄링중단(cordon)및 허용(uncordon) kubectl cordon : 특정 worker node 에서 scheduling에 대해 disabled상태로 만들고 kubectl uncordon : abled상태로 만든다. Node 비우기(drain) 특정 node 에서 실행중인 pod 비우기(drain) 및 제거(delete) (..

Deployment 컨테이너 기반으로 애플리케이션을 동작시킬 때 가장 많이 사용하는 API (배포) Pod를 직접 실행하지 않고 Deployment를 이용하여 컨테이너를 실행하는가? ReplicaSet 컨트롤러를 통해 replica 수 보장 및 scaling in/out 가능 (Pod직접실행 시, watch해주는 controller가 없어서 오류가 나면 재실행되지 않음.) Rolling update 또는 Roll back 지원 동작과정 : deployment 명령을 내리면 Deployment 가 생성, ReplicaSet controller 생성 controller 가 pod 실행/보장 deployment yaml 파일 구조 apiVersion: apps/v1 kind: Deployment metadat..