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 |