K8s

K8s Cluster 구조

Tech Crunchy 2025. 3. 29. 19:17
728x90

개요

쿠버네티스 클러스터는 클러스터를 관리하는 마스터와 컨테이너를 실행시키는 노드로 구성되어 있습니다.

  • 마스터: etcd, kube-apiserver, kube-scheduler, kube-controller-manager, kubelet, kube-proxy 등 실행
  • 노드: kubelet, kube-proxy 등 실행

 

고가용성 (High Availability, HA) 

쿠버네티스에서 고가용성은 시스템 내의 구성 요소에 장애가 발생하더라도 서비스 중단 시간을 최소화하거나 아예 없이 지속적으로 운영할 수 있는 능력을 의미합니다.

마스터는 일반적으로 고가용성을 만족하고자 서버 3대 정도로 구성하여 운영합니다. 실제 작동하면서 클러스터를 관리하는 리더 마스터는 1대고, 나머지 2대는 대기 상태로 존재합니다. 리더 마스터에 장애가 발생하면 자동으로 나머지 2대 중 1대가 리더 역할을 맡습니다.

 

마스터와 노드 통신 구조

통신 구조의 중심에는 kube-apiserver가 있습니다. 쿠버네티스에서 모든 통신은 kube-apiserver를 중심으로 하고 있습니다. kube-apiserver를 통해 컴포넌트들은 서로 필요한 정보를 주고받습니다. 여기서 특히 etcd는 kube-apiserver만 접근할 수 있습니다.

 

마스터용 컴포넌트

마스터용 컴포넌트는 클러스터 전체를 관리합니다.

  • etcd: 고가용성을 제공하는 키-값 저장소
  • kube-apiserver: 클러스터의 API를 사용할 수 있도록 하는 컴포넌트로 인입된 요청이 유효한지 검증함
  • kube-scheduler: 클러스터 내 자원 할당이 가능한 노드 중 적절한 노드를 선택 후 Pod를 실행
  • kube-controller-manager: 클러스터 내 다양한 컨트롤러를 관리하여 desired state와 current state를 일치시킴
  • cloud-controller-manager: 쿠버네티스 컨트롤러를 클라우드 서비스와 연결하여 관리

 

노드용 컴포넌트

노드용 컴포넌트는 쿠버네티스 실행 환경을 관리합니다.

  • kubelet: 클러스터 내 모든 노드에서 실행되는 에이전트로 Pod 컨테이너 실행을 직접 관리
  • kube-proxy: 클러스터 내 가상 네트워크를 설정하고 관리
  • container runtime: 실제 컨테이너를 실행시킴

 

특이사항

노드는 한 때 미니언이라 불렸습니다. 과거 자료에는 아직도 미니언이라 기재되어 있는 경우가 있으니 참고하세요.

728x90

'K8s' 카테고리의 다른 글

kube-proxy  (0) 2025.04.20
서비스 (Service)  (0) 2025.04.20
컨트롤러 (Controller)  (0) 2025.03.31
포드 (Pod)  (0) 2025.03.31
kubectl  (0) 2025.03.29