How does the Kubernetes control plane differ from worker nodes?
Learn how the Kubernetes control plane differs from worker nodes: decision-making components versus workload execution, and how they reconcile cluster state.
Expected Interview Answer
The control plane makes global decisions about the cluster and maintains its desired state, while worker nodes run the actual application workloads in pods. The control plane is the brain; worker nodes are the muscle.
Control-plane components include the API server (the front door), etcd (state store), the scheduler (assigns pods to nodes), and controller managers (drive actual state toward desired state). Each worker node runs the kubelet (manages pods on that node), a container runtime (runs containers), and kube-proxy (handles networking). The control plane decides what should run and where, and worker nodes carry out those decisions and report status back through the API server.
- Clear separation of decision-making from workload execution
- Control plane can be run highly available and separately scaled
- Worker nodes scale horizontally to add capacity
- Failures are isolated: a node failure does not lose cluster state
- Consistent management through a single API server front door
AI Mentor Explanation
The control plane is the captain and coaching staff who decide the batting order and field placements, while worker nodes are the eleven players executing those plans on the pitch. The strategists never bowl a ball themselves; they direct, and the players carry out each decision and report the result back for the next call.
Step-by-Step Explanation
Step 1
Request enters
A user or controller sends a request to the API server, the single front door of the control plane.
Step 2
State is persisted
The API server validates the request and stores the desired state in etcd.
Step 3
Scheduler assigns
The scheduler picks a suitable worker node for each unscheduled pod based on resources and constraints.
Step 4
Kubelet executes
The chosen node's kubelet sees the assignment and instructs the container runtime to start the pod's containers.
Step 5
Status flows back
kubelet reports pod status to the API server, and controllers reconcile any drift between desired and actual state.
What Interviewer Expects
- Control plane makes decisions; worker nodes run workloads
- Naming control-plane components: API server, etcd, scheduler, controller manager
- Naming node components: kubelet, container runtime, kube-proxy
- Understanding the desired-vs-actual state reconciliation loop
- Awareness that control plane can be made highly available
Common Mistakes
- Saying pods normally run on the control plane by default
- Confusing the kubelet with kube-proxy's role
- Thinking worker nodes store cluster state instead of etcd
- Believing the scheduler starts containers itself
- Not distinguishing the API server as the single entry point
Best Answer (HR Friendly)
“The control plane is the brain of a Kubernetes cluster: it decides what should run and where. Worker nodes are the workers that actually run the applications and report back, so the brain can keep everything matching the plan.”
Code Example
# List nodes and their roles
kubectl get nodes -o wide
# NAME STATUS ROLES AGE VERSION
# cp-1 Ready control-plane 40d v1.30.2
# worker-1 Ready <none> 40d v1.30.2
# worker-2 Ready <none> 40d v1.30.2
# See the control-plane pods (API server, etcd, scheduler, controller manager)
kubectl get pods -n kube-system -o wide
# Control-plane nodes are usually tainted so app pods land on workers
kubectl describe node cp-1 | grep Taints
# Taints: node-role.kubernetes.io/control-plane:NoScheduleFollow-up Questions
- What are the main components of the control plane?
- What does the kubelet do on a worker node?
- Why are control-plane nodes usually tainted?
- How do you make the control plane highly available?
- What is the role of kube-proxy on a node?
MCQ Practice
1. Which component assigns pods to specific worker nodes?
The kube-scheduler, a control-plane component, decides which node each unscheduled pod should run on.
2. Which agent runs on every worker node and manages its pods?
The kubelet runs on each worker node, ensuring the containers described in its assigned pods are running and healthy.
3. Where is authoritative cluster state stored?
etcd, part of the control plane, is the single source of truth for cluster state; worker nodes do not store it.
Flash Cards
What does the control plane do? — Makes global decisions and maintains desired cluster state via the API server, etcd, scheduler, and controllers.
What do worker nodes do? — Run application pods using the kubelet, container runtime, and kube-proxy, reporting status back.
Which component schedules pods? — The kube-scheduler, a control-plane component, assigns pods to suitable worker nodes.
Why taint control-plane nodes? — To keep general application pods off them so they stay dedicated to cluster management.