Kubernetes Core
20 min
Day 49: Nodes & kubelet
The kubelet: the control plane's agent on every node
The kubelet runs on every node and is the bridge between the control plane's desired state and the actual containers running there. It watches the API server for Pods assigned to its node, and talks to the container runtime (via CRI, Phase 6) to actually start/stop containers, run health probes, and report status back.
- API server assigns a Pod to Node X (via the scheduler)
- Node X's kubelet notices, pulls the image, and asks the container runtime (containerd) to start the container
- kubelet continuously runs configured probes (Day 54) and reports Pod status back to the API server
- If the kubelet itself stops reporting (node failure), the control plane eventually marks the node NotReady and reschedules its pods elsewhere
Inspecting nodes
kubectl get nodes
kubectl describe node <node-name> # capacity, allocatable resources, conditionsKey terms
- kubelet
- The node-level agent that starts/stops containers per the API server's instructions and reports status back.
What does the kubelet actually do when a Pod is scheduled onto its node?