쿠버네티스 아키텍처는 크게 마스터 노드(master node)와 워커 노드(worker node)로 구분됨
마스터노드
마스터 노드는 쿠버네티스 클러스터의 컨트롤플레인(control plane)을 구성
주요 구성요소는 다음과 같음
- API 서버 (kube-apiserver)
- 클러스터의 중심 통신 허브로, 모든 관리 명령이 API 서버를 통해 수행됨
- 쿠버네티스 API를 통해 클러스터와 통신함
- 클러스터 저장소 (etcd)
- 모든 클러스터 데이터를 저장하는 분산 키-값 저장소
- 클러스터의 상태를 유지하며, 고가용성을 보장하기 위해 사용됨
- 컨트롤러 매니저 (kube-controller-manager)
- 다양한 컨트롤러를 실행하여 클러스터 상태를 원하는 상태로 유지함
- 예를 들어, 노드가 실패하면 해당 노드의 작업을 다른 노드로 이전
- 스케줄러 (kube-scheduler)
- 새로 생성된 파드를 적절한 워커 노드에 할당하는 역할을 함
- 리소스 요구 사항과 기타 제약 조건을 고려하여 배치 결정을 내림
워커 노드
워커 노드는 실제 컨테이너화된 애플리케이션을 실행하는 서버
주요 구성요소는 다음과 같음
- kubelet
- 각 노드에서 실행되며, 마스터 노드의 지시에 따라 컨테이너를 시작하고 관리함
- 파드의 건강 상태를 모니터링하고 보고함
- 컨테이너 런타임
- 컨테이너를 실행하는 역할을 함
- Docker, containerd, CRI-O 등이 있음
- 쿠브 프록시 (kube-proxy)
- 노드의 네트워크 프록시 및 로드 밸런서 역할을 하며, 파드 간 네트워크 통신을 가능하게 함
동작 순서
쿠버네티스 클러스터는 다음과 같은 방식으로 동작함
- 사용자 또는 자동화 도구가 API 서버에 명령을 제출
- API 서버는 이 명령을 etcd에 저장하고, 상태를 갱신함
- 컨트롤러 매니저가 변경 사항을 감지하고, 필요한 조치를 취함 (예: 파드 재배치)
- 스케줄러가 새 파드를 적절한 워커 노드에 할당함
- 워커 노드의 kubelet이 API 서버로부터 파드 생성 명령을 받고, 컨테이너 런타임을 통해 컨테이너를 시작함
'Kubernetes' 카테고리의 다른 글
Multi-container pod 패턴 (0) | 2024.05.07 |
---|---|
쿠버네티스 Config 파일 여러 개 관리 (0) | 2024.04.30 |
CNI란? (0) | 2024.04.28 |
쿠버네티스 소개 (0) | 2024.04.28 |
쿠버네티스와 마이크로서비스 아키텍처 (0) | 2024.04.07 |