k8s 클러스터는 노드 집합으로 구성되어 있습니다.
워커 노드는 애플리케이션을 컨테이너 형태로 담습니다. 마스터 노드는 k8s를 관리하는 역할을 합니다. 그 역할에는 노드들에 데이터를 저장하고, 하나의 컨테이너가 어느 노드에 생성되어야 하는지에 대한 계획을 하고, 노드와 컨테이너를 모니터링 합니다.
마스터 노드 구성
ETCD
- 데이터를 key-value 형태로 저장하는 데이터베이스
Kube Scheduler
- 새로 생성되는 컨테이너와 여러 상황을 고려하여 어느 노드에 새로운 컨테이너를 생성할지 계획
- 고려되는 상황 : 새로 생성될 컨테이너의 요구 자원량, 워커 노드의 자원 상황, 정책 및 제한 등 (taint, toleration)
Kube API Server
- k8s에서 일어나는 모든 수행 동작을 오케스트레이션(관여, 조율, 관리)
- k8s의 모든 요소들이 통신할 수 있게 보장
Kube Controller Manager
- node controller : 클러스터에 있는 노드의 상태를 모니터링하고 상태에 따라 생성 및 제거
- Replication Controller : 설정한 개수의 컨테이너가 항상 유지되도록 보장
워커 노드 구성
Controller Runtime Engine
- 컨테이너 엔진으로 도커가 대표적인 상품
- 다른 제품도 설치 가능 (ex. container D)
Kubelet
- 각 노드에 있는 agent
- Kube API Server로부터 오는 지시를 리스닝하고 있고, 지시에 따라 노드에 컨테이너를 생성하고 제거
- 주기적으로 노드와 컨테이너의 상태를 Kube API Server로 보내어 모니터링
Kube Proxy
- 내부 룰(ip tables)를 통해 컨테이너들이 서로 연결될 수 있도록 보장
'IT > Cloud' 카테고리의 다른 글
[k8s] ReplicaSet (0) | 2023.07.30 |
---|---|
[k8s] 파드(pod) (0) | 2023.07.30 |
[K8S] 워커 노드 구성 (0) | 2023.07.30 |
[K8S] 마스터 노드 구성 (0) | 2023.07.30 |