The Control Plane

Under the Hood: The Control Plane

A Kubernetes 5,150 cluster has two halves: the control plane stores the desired state and makes decisions, and the nodes run the containers (How Nodes Run Containers). The control plane is four programs, which kind 14,561 runs as Pods on the control-plane node, started by the kubelet from manifest files on disk:

The control plane runs as Pods on the control-plane nodeShell
kubectl get pods -n kube-system -l tier=control-plane -o name
docker exec l3-booknest-control-plane ls /etc/kubernetes/manifests
Output
pod/etcd-l3-booknest-control-plane
pod/kube-apiserver-l3-booknest-control-plane
pod/kube-controller-manager-l3-booknest-control-plane
pod/kube-scheduler-l3-booknest-control-plane
etcd.yaml
kube-apiserver.yaml
kube-controller-manager.yaml
kube-scheduler.yaml

These are static Pods: the kubelet runs whatever it finds in /etc/kubernetes/manifests, which is how the control plane runs on Kubernetes before Kubernetes exists. kind builds nodes with kubeadm 5,150 , the upstream installer, so the layout matches a kubeadm cluster on real servers; managed services hide these Pods from you.

The control plane and a worker node; every component talks only to the API server
The control plane and a worker node; every component talks only to the API server

Subsections