Two halves: a brain that decides, and muscle that runs.
Every cluster splits in two. The control plane holds the desired state and makes decisions; the data plane — your worker nodes — actually runs the containers. Everything Kubernetes does is a conversation between these two.
The brain
Decides what should be true and never stops checking.
The muscle
Where your containers actually live and breathe.
From kubectl apply to running pods.
One command sets a chain in motion. Follow it across the cluster — this loop is the whole idea of Kubernetes, running thousands of times a second.
You state the want
“Run 3 replicas of this image.” It lands in etcd via the API server as desired state.
A controller sees a gap
Desired says 3, actual says 0. The deployment controller creates the missing pod objects.
The scheduler assigns
Each unscheduled pod is matched to a node with room and the right constraints.
The kubelet obeys
On each node, the kubelet pulls the image and tells the runtime to start the container.
It never stops
A pod dies? Actual drops to 2, the gap reopens, and the loop heals it. Forever.
Once you see the loop, Kubernetes stops being a maze of YAML.
One idea, drawn
Reconciliation is the whole engine. See it once as a diagram and every controller, operator and CRD becomes the same shape.
Sits inside infrastructure
This is a deep dive under the infrastructure layer of the stack — containers scheduled, routed and scaled, made legible.
Debug with a model
When something's stuck, you'll know which half to look at — is desired state wrong, or is the data plane failing to reach it?
Watch a cluster heal itself.
Declare a want, break something, and see the reconcile loop put it right. That's Kubernetes — no magic, just a loop that never quits.
See it reconcile