Free preview · Beginner · 16 min read
Kubernetes Mental Model & Cluster Architecture
Build the correct mental model for Kubernetes: desired state, reconciliation, control plane, worker nodes, API-driven automation, and the full request-to-Pod flow.
Free preview · Beginner · 16 min read
Build the correct mental model for Kubernetes: desired state, reconciliation, control plane, worker nodes, API-driven automation, and the full request-to-Pod flow.
Kubernetes is an API-driven control system for running workloads. You declare the desired state; controllers continuously compare that desired state with the observed state and act to reduce the difference.
Engineer / CI/CD
|
| kubectl / API client
v
+------------------------------+
| CONTROL PLANE |
| |
| kube-apiserver |
| | |
| +----> etcd |
| | |
| +----> kube-scheduler |
| | |
| +----> controllers |
+------------------------------+
|
| desired state / assignments
v
+------------------------------------------+
| WORKER NODE |
| |
| kubelet ---> container runtime ---> Pod |
| networking / Service implementation |
+------------------------------------------+
The control plane manages overall cluster state:
| Component | What it does |
|---|---|
kube-apiserver | Exposes the Kubernetes HTTP API and is the front door to cluster state |
etcd | Stores Kubernetes API data as a consistent key-value store |
kube-scheduler | Chooses a suitable Node for unscheduled Pods |
kube-controller-manager | Runs reconciliation controllers |
cloud-controller-manager | Optional integration point for supported cloud-provider functions |
A worker node runs workloads and normally includes:
Suppose you apply a Deployment:
kubectl apply -f deployment.yaml
A simplified flow is:
kubectl sends an API request to the API server.That observe → compare → reconcile loop is the heart of Kubernetes.
kubectl cluster-info
Shows important cluster endpoints known to your current context.
kubectl get nodes -o wide
Lists Nodes and useful placement/network information.
kubectl get pods -A -o wide
Lists Pods across namespaces and shows where each Pod is running.
kubectl get --raw='/readyz?verbose'
Where permitted, queries API-server readiness details directly through the Kubernetes API.