Control Plane

Kubernetes는 선언된 상태를 계속 맞추는 제어 시스템이다

사용자는 API Server에 원하는 상태를 선언하고, 컨트롤 플레인과 각 노드의 에이전트가 현재 상태를 관찰하며 차이를 줄인다.

API Server는 모든 클러스터 요청의 관문이다
Scheduler는 새 Pod를 실행할 Node를 고른다
Controller는 desired state와 current state를 계속 비교한다
Control plane
API Serverkubectl, controller, kubelet 요청을 검증하고 클러스터 API를 제공한다.
etcd클러스터 상태와 설정을 저장하는 일관성 있는 key-value 저장소다.
Scheduler자원 요청, 제약, taint/toleration 등을 보고 Pod 배치 위치를 고른다.
Controller ManagerDeployment, ReplicaSet 같은 리소스의 현재 상태를 원하는 상태로 수렴시킨다.
Worker nodes

Node A

Pod web-1container + shared network
Pod web-2same label app=web
Pod sidecarlog/proxy pattern
kubeletPod spec을 받아 컨테이너 런타임에 실행을 지시한다.
container runtimecontainerd/CRI-O 등이 실제 컨테이너를 시작한다.
kube-proxyService 트래픽 규칙을 노드 네트워크에 반영한다.

핵심: Kubernetes는 “명령을 한 번 실행하는 도구”보다 “선언된 상태와 실제 상태의 차이를 계속 줄이는 루프”에 가깝다.