I'm transitioning from managing individual Docker containers to a full K8s environment. I keep hearing about the "Control Plane" and "Worker Nodes." What are the specific responsibilities of the API Server, etcd, and the Scheduler? How does the system ensure that if a node fails, my application keeps running without manual intervention?
3 answers
Communication happens via the API Server. Worker nodes don't talk to each other directly for orchestration; the Kubelet on each node checks in with the Control Plane to see what it should be doing, ensuring a highly organized, centralized management system.
If a node fails, the Controller Manager detects the discrepancy between the "Desired State" and the "Actual State." It then triggers the Scheduler to move those workloads to a healthy node. This is the core of Self-Healing—the system repairs itself to maintain your specified configuration.
The "etcd" component is arguably the most critical. If you lose your etcd quorum without a backup, you effectively lose the entire cluster's configuration, even if the worker nodes are still spinning.
Think of the Control Plane as the "Brain" and the Worker Nodes as the "Muscle." The API Server is the gateway for all commands, while etcd acts as the single source of truth for cluster state. The Scheduler assigns work to nodes based on resource availability. On the worker side, the Kubelet ensures containers are running in a Pod.
Don't forget Kube-proxy! While Kubelet handles the containers, Kube-proxy handles the networking on each node to ensure traffic gets to the right Pod.