쿠버네티스 클러스터와 노드
- 쿠버네티스 클러스터(cluster) 란 쿠버네티스의 다양한 리소스를 관리하는 집합 그룹을 의미
- 클러스터에서 가장 큰 단위는 노드(Node) 이며 노드는 클러스터에서 등록된 컨테이너의 호스트로 컨테이너 배포에 사용됨
- 클러스터에는 전체를 관리하는 서버인 컨트롤 플레인이 적어도 하나 이상 배치됨
- 클러스터 구성은 다음과 같이 두 그룹으로 구성됨
- 컨트롤 플레인 노드
- 워커 노드
- 쿠버네티스는 노드의 리소스 상태와 배치 전략에 따라 컨테이너를 적절하게 배치하는 기능이 존재
kubectl get nodes명령어를 통해 클러스터에서 사용하는 노드의 리스트를 확인 가능- 컨트롤 플레인을 구성하는 관리 컴포넌트
컴포넌트명 역할 kube-apiserver 쿠버네티스의 API를 공개하는 컴포넌트로 kubectl명령어로 리소스를 조작함etcd 높은 가용성의 분산 key-value 스토어로 클러스터의 백업 스토어로 사용 kube-scheduler 노드를 모니터링하고 컨테이너를 배치할 최적의 노드를 선택 kube-controller-manager 리소스를 제어하는컨트롤러 실행
클라우드 기반 쿠버네티스에서 노드는 GCP의 GCE, AWS의 EC2 인스턴스 등으로 구성됨
온프레미스 환경에서 운영할 때 컨트롤 플레인이 단일 장애 지점이 되지 않도록 다중 컨트롤 플레인으로 3대 이상 배치하는 것을 권장