Skip to main content

쿠버네티스 클러스터와 노드

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

클라우드 기반 쿠버네티스에서 노드는 GCP의 GCE, AWS의 EC2 인스턴스 등으로 구성됨
온프레미스 환경에서 운영할 때 컨트롤 플레인이 단일 장애 지점이 되지 않도록 다중 컨트롤 플레인으로 3대 이상 배치하는 것을 권장