클라우드/쿠버네티스

[Kubernetes] 2-1. 쿠버네티스 기초 개념 (Cluster, Pod, Node, Deployment)

윤창이 2021. 4. 29. 12:39
728x90

[주의] 개인 공부를 위해 쓴 글이기 때문에 주관적인 내용은 물론, 쓰여진 정보가 틀린 것일 수도 있습니다!

피드백 부탁드립니다. (- -)(_ _) 꾸벅

 

 


 

[ Cluster 클러스터 ]

cluster

마스터와 마스터가 관장하는 노드들을 묶어놓은 전체를 클러스터라 한다. Control Plane인 Master는 자신의 클러스트를 관리할 책임이 있다. 노드는 하나의 physical computer가 될 수도, 하나의 VM이 될 수도 있다. 

 

[ Deployment 배포 ]

컨테이너를 만들면 그 위에 애플리케이션을 배포할 수 있다. 그러기 위해서 먼저 쿠버네티스 Deployment 설정을 먼저 만들어야 한다. 디플로이먼트는 쿠버네티스가 애플리케이션을 어떻게 생성하고 업데이트하는지 지시하는 일종의 시방서이다. 이 디플로이먼트를 통해 마스터 노드는 해당 애플리케이션의 인스턴스를 개별 노드에 실행되도록 스케줄링한다.

 

[ Pod ]

Volume(공유 스토리지)이나 컨테이너들이 다양하게 구성 가능하다. 각각의 Pod는 일련의 IP주소를 부여받고, Pod 안에서의 각 컨테이너나 볼륨은 포트를 통해 구별할 수 있다. 배포를 한다는 것은 컨테이너와 함께 그 컨테이너를 포함하는 Pod를 생성하는 것이다. Pod는 애플리케이션 플랫폼 상의 최소 단위이다. 이렇게 생성된 Pod는 스케줄링 된 Node에게 묶여지게 된다. 

같은 Pod 안에 있는 컨테이너들은 네트워크 네임스페이스 등과 같은 리눅스 네임스페이스를 공유해 사용하기 때문에 여러 컨테이너들을 추상화된 집합으로 사용이 가능하다.

 

[ Node ]

노드는 쿠버네티스의 Worker Machine을 말하며 마스터 노드가 관리한다. 백그라운드 데몬으로 kubelet과 Container 엔진인 Docker가 돌고 있다.  kubelet은 마스터와 노드 간의 통신을 책임지는 프로세스이다.

 

 

사진 출처 : 쿠버네티스 공식 홈페이지 (v1-18.docs.kubernetes.io/ko/docs/tutorials/kubernetes-basics/)

728x90