The Components at a Glance


Control Plane Components
kube-apiserver
The entry point of Kubernetes. Every request — from kubectl, from CI/CD, from the other control plane components themselves — passes through the API Server. Nothing touches the cluster any other way.
kubectl → API Server → (everything else)
etcd
A distributed key-value database and the cluster's source of truth. It stores:
- Cluster state
- Pod and node information
- Secrets
- ConfigMaps
If it isn't in etcd, it doesn't exist as far as Kubernetes is concerned.
kube-scheduler
Decides where each new Pod should run. For every unscheduled Pod, it checks each node's available CPU, memory, and constraints, then assigns the Pod to the best fit.
kube-controller-manager
Runs the reconciliation loops that make Kubernetes self-healing. It continuously compares desired state (what you asked for) with current state (what's actually running) and fixes the difference:
Desired Pods = 3
Current Pods = 2
↓
Creates 1 new Pod
Node Components
kubelet
The agent on every worker node. It receives Pod instructions from the API Server, starts the containers via the container runtime, and reports Pod status back to the control plane.
kube-proxy
Handles networking on each node — it maintains the routing rules that get traffic to the right Pods and makes Service networking work.
Container Runtime
The component that actually runs containers. Modern clusters use containerd or CRI-O. (Docker is no longer the default runtime in modern Kubernetes — though the images it builds run unchanged.)
Summary
| Component | Lives on | Role |
|---|---|---|
| kube-apiserver | Control plane | Single entry point for all cluster operations |
| etcd | Control plane | Key-value store; the cluster's source of truth |
| kube-scheduler | Control plane | Picks the best node for each new Pod |
| kube-controller-manager | Control plane | Reconciles desired state vs. current state |
| kubelet | Every node | Starts containers and reports status |
| kube-proxy | Every node | Routes traffic to Pods (Service networking) |
| Container runtime | Every node | Actually runs the containers (containerd, CRI-O) |
The desired-state reconciliation loop run by the controller manager is the central mechanism in Kubernetes — Pods, ReplicaSets, and Deployments in the coming lessons are all just different desired states for this loop to enforce.