CKA
-
CKA 03: 쿠버네티스에서 환경변수 활용DevOps/Kubernetes 2020. 8. 15. 22:50
어떤 도커 컨테이너 이미지가 실행될 때 반드시 실행되는 명령어를 ENTRYPOINT와 CMD를 통해 지정한다. 그 실행될 명령어가 ENTRYPOINT 라면 여기에 기본값을 넣어주는 것이 CMD이다. 그래서 실제로 실행될 때는 ENTRYPOINT + CMD가 붙은 것이 함께 돌아가게 된다. 예를 들어 ENTRYPOINT ['sleep'] CMD ["5"]라고 하면, sleep 5가 기본으로 실행되는 것이다. docker run .... 10이라고 컨테이너 실행시 어떤 인풋을 같이 넣어주게 되면 sleep 10이 실행되는 형태다. K8S에서도 이런 비슷한 역할을 해주는 것이 있는데, command가 ENTRYPOINT 역할이고, args가 CMD 역할이다. 만약 컨테이너 이미지에 ENTRYPO..
-
CKA 02: Kubernetes ObjectsDevOps/Kubernetes 2020. 7. 25. 20:15
Pod 쿠버네티스에서는 컨테이너를 결국 배포해서 실행되게 하는 게 목적이지만, 컨테이너를 직접 노드에다가 실행하지 않는다. 대신 Pod라는 최소 단위로 encapsulate 해서 실행한다. 왜 이렇게 하냐고? 보통 하나의 Pod에 하나의 컨테이너가 들어가기는 하지만, 한 Pod에 여러 컨테이너가 들어갈 수도 있음. (예: logging 등을 전담하는 헬퍼 컨테이너) 하나의 파드에 여러 컨테이너가 들어가게 되면, 1) 네트워크 네임스페이스를 공유하기 때문에 localhost: 방식으로 컨테이너 간 통신이 가능함. 2) 스토리지 볼륨 공유 ReplicaSets Pod가 encapsulate 해주는 거는 좋은데, 결국 얘가 하나 죽으면 서비스가 불가한 상황이 된다. 그러니 여러 Pod를 유지하고 싶은데 죽을 ..
-
CKA 01: Kubernetes ArchitectureDevOps/Kubernetes 2020. 7. 25. 16:26
Cluster Architecture 쿠버네티스 클러스터는 컨트롤 플레인 컴포넌트와 '노드'라고 불리는 서버들의 집합이다. Master node: 전체 클러스터의 뇌 역할. 클러스터 내에서 발생하는 이벤트들을 감지하고 파드 스케줄링 등의 의사결정을 한다. Worker node: 컨테이너화 되어 있는 어플리케이션을 실행. Control Plane: Master Nodes kube-apiserver 쿠버네티스 컨트롤 플레인의 프론트엔드 역할. ETCD와 다이렉트로 통신하는 유일한 존재. 나머지 컴포넌트들은 apiserver를 경유하여 etcd와 상호작용. kubectl 명령어가 들어왔을 때? 사용자 인증 > 요청 검증 > 데이터 추출 > etcd 업데이트 > scheduler에 전달 > kub..