반응형
1. 클러스터 컴포넌트 구성 요소
- 쿠버네티스가 구성된 환경을 클러스터라고 부르며, 클러스터는 쿠버네티스가 동작하도록 하는 컴포넌트와 파드가 배포(실행)되는 노드로 이루어져 있음
- 일반적인 클러스터는 아래 그림처럼 구성
컴포넌트 구성 요소
- 노드
- 마스터 노드
- 워커 노드
- 마스터 노드 컴포넌트
- API Server
- etcd
- Scheduler
- Controller manager
- 워커 노드 컴포넌트
- kubelet
- kube-proxy
- Container Runtime
2. 마스터 노드
- 마스터 노드·마스터·control plane 등으로 호칭하며 쿠버네티스가 작동하는데 필요한 컴포넌트가 배포 및 실행되는 노드
- 마스터 노드에 장애가 발생하거나 다운될 경우 K8s 환경 전체에 장애가 발생하므로, Prod 환경에서 운영 시 마스터 노드는 반드시 HA로 구성해야 함
3. 워커 노드
- 파드가 배포 및 실행되는 노드로서 파드를 생성하고 관리하는 실질적인 주체
4. 마스터 노드 컴포넌트
- API Server
- PC에 비유하면 CPU의 역할을 수행하며 etcd와 통신할 수 있는 유일한 컴포넌트
- 끊임없이 Scheduler와 Controller manager 등 다른 컴포넌트의 상태를 확인하고, 이들로부터 받은 요청을 kubelet에 전달해 작업을 수행함
- etcd
- key-value 저장소로서 클러스터의 모든 설정과 상태를 저장하는 일종의 DB
- 반드시 API Server와만 통신하고, Scheduler 등 이외의 컴포넌트는 API Server에 요청하면 API Server가 etcd로부터 값을 읽어와 응답을 전달하는 구조
- K8s에서 가장 중요한 컴포넌트로, 클러스터 전체가 다운될 경우 백업해둔 etcd 값을 활용해 복구 가능
- Controller manager
- Node Controller, Replication Controller, Deployment Controller 등 컨트롤러를 관리하는 컴포넌트
- 파드·디플로이먼트 등의 오브젝트와 노드의 상태를 모니터링(C-M이 직접 모니터링하는 것은 아니고 API Server로 부터 상태 값을 전달받음) 수행
- Scheduler
- 파드가 필요로 하는 리소스와 노드가 가용할 수 있는 리소스 그리고 여러가지 제약 조건(커든, 어피니티, 테인트 등)을 고려해 파드를 적절한 워커 노드에 배포(할당)하는 컴포넌트
5. 워커 노드 컴포넌트
- kublet
- 파드의 생성부터 소멸 및 복구 등 전체 Life-Cycle에 수반되는 작업을 수행하는 컴포넌트
- 워커 노드를 새로 생성한 경우 클러스터에 노드를 등록하고, 워커 노드와 파드의 상태를 주기적으로 API Server에 응답
- API Server로부터 파드 핸들링에 관한 명령을 전달받아 API Server 대신 수행
- kube-proxy
- 클러스터 내의 노드와 파드간에 통신이 가능하도록 하는 컴포넌트
- 워커 노드로 인입되는 트래픽을 적절한 파드로 라우팅하고, 파드 내에서의 네트워크를 핸들링
- Container Runtime
- 파드에서 실행될 컨테이너 엔진
- Docker, containrd, CRI-O 등
6. 참고
반응형
'Kubernetes' 카테고리의 다른 글
Kubernetes 서비스(Service) 개념과 설정 (0) | 2023.03.15 |
---|---|
Kubernetes 네임스페이스(Namespace) 개념과 명령어 (0) | 2023.03.15 |
Kubernetes 디플로이먼트(Deployment) 개념과 명령어 (0) | 2023.03.15 |
Kubernetes 레플리카셋(ReplicaSet) 개념과 명령어 (0) | 2023.03.15 |
Kubernetes 파드(Pod) 개념과 명령어 (0) | 2023.03.15 |