⌂ Home

🚀 Kubernetes Architecture

Understanding Control Plane and Worker Node Components - Hover over components for details

Control Plane
API Server
Central hub - all communication goes through here
🎯 API Server (kube-apiserver)
The front door to Kubernetes. Every kubectl command, controller action, and kubelet update goes through the API server.
Key Role: Validates, authenticates, and authorizes all requests. It's the only component that directly communicates with etcd.
etcd
Key-value database storing cluster state
💾 etcd
Distributed key-value store that holds all cluster data. It's the single source of truth for the entire cluster state.
Key Role: If etcd goes down, the cluster loses its memory. Regular backups are critical for disaster recovery.
Scheduler
Decides which node should run each pod
📅 Scheduler (kube-scheduler)
Watches for newly created pods with no assigned node and selects the best node for them to run on.
Key Role: Considers resource requirements, hardware/software constraints, affinity/anti-affinity, taints/tolerations, and data locality when making placement decisions.
Controller Manager
Maintains desired state across the cluster
🔄 Controller Manager (kube-controller-manager)
Runs multiple controllers in a single process: Node Controller, ReplicaSet Controller, Deployment Controller, Service Controller, and more.
Key Role: Each controller watches the cluster state and makes changes to move the actual state closer to the desired state.
Worker Nodes
Kubelet
Node agent that ensures containers are running
🤖 Kubelet
The primary node agent that runs on each node. It watches the API server for pods scheduled to its node.
Key Role: Starts containers, monitors their health, reports status back to the control plane, and ensures pods are running and healthy.
Kube-proxy
Manages network rules for service discovery
🌐 Kube-proxy
Network proxy that runs on each node. Maintains network rules that allow communication to pods from inside or outside the cluster.
Key Role: Implements service abstraction by maintaining iptables or IPVS rules, enabling service discovery and load balancing.
Container Runtime
Runs containers (containerd, CRI-O, Docker)
📦 Container Runtime
Software responsible for pulling images, creating containers, and managing their lifecycle. Common runtimes: containerd, CRI-O.
Key Role: Kubelet communicates with the container runtime via CRI (Container Runtime Interface) to manage containers.
Pods (Your Apps)
Where your applications actually run
🎨 Pods
The smallest deployable unit in Kubernetes. A pod can contain one or more containers that share network and storage.
Key Role: This is where your application code actually executes. Containers in a pod share the same IP and can communicate via localhost.