0
0
Kubernetesdevops~10 mins

Kubernetes architecture (control plane and nodes) - Step-by-Step Execution

Choose your learning style9 modes available
Process Flow - Kubernetes architecture (control plane and nodes)
User/Client
API Server
Controller Manager
etcd (Data Store)
Kubelet
Container Runtime
The control plane manages the cluster state and schedules work. Nodes run the actual containers. Communication flows from user to API server, then to scheduler and controllers, and finally to nodes.
Execution Sample
Kubernetes
# Control Plane Components
kubectl get componentstatuses

# Node Components
kubectl get nodes
kubectl describe node <node-name>
Commands to check the health of control plane components and view node details.
Process Table
StepComponentActionInputOutput/Effect
1User/ClientSends requestkubectl apply -f pod.yamlRequest received by API Server
2API ServerValidates and processesPod spec from userStores desired state in etcd
3SchedulerWatches API ServerNew pod without node assignmentAssigns pod to a suitable node
4Controller ManagerMonitors cluster statePod assigned to nodeEnsures pod is running, creates replicas if needed
5etcdStores cluster stateDesired and current statesPersistent data storage for cluster
6Kubelet (Node)Receives pod assignmentPod spec from API ServerStarts containers via container runtime
7Container RuntimeRuns containersContainer images and commandsContainers running inside pods
8User/ClientChecks statuskubectl get podsShows pod running status
9ExitNo more actionsAll pods scheduled and runningCluster stable and operational
💡 All pods are scheduled and running; cluster state matches desired state.
Status Tracker
ComponentInitial StateAfter Step 2After Step 3After Step 6Final State
API ServerIdleReceived pod specPod scheduledPod spec sent to nodeProcessed requests
SchedulerIdleNo pod to scheduleAssigned pod to nodeWaiting for next podReady for next scheduling
Controller ManagerIdleNo actionMonitors pod stateEnsures pod runningMaintains desired replicas
KubeletIdleNo pod assignedWaiting for podStarts containerPod running
etcdStores cluster dataUpdated desired stateUpdated with node assignmentUpdated with pod statusPersistent cluster state
Key Moments - 3 Insights
Why does the Scheduler assign pods after the API Server stores the pod spec?
Because the Scheduler watches the API Server for new pods without node assignments (see execution_table step 3). It needs the pod spec stored first to decide where to place the pod.
How does the Kubelet know what containers to run?
The Kubelet receives the pod spec from the API Server after scheduling (step 6). It uses this spec to start containers via the container runtime.
What role does etcd play in the cluster?
etcd stores the desired and current cluster state persistently (step 5). It acts as the single source of truth for the cluster.
Visual Quiz - 3 Questions
Test your understanding
Look at the execution_table at step 3. What does the Scheduler do?
AStarts the container runtime
BStores the pod spec in etcd
CAssigns the pod to a suitable node
DValidates the pod spec
💡 Hint
Refer to execution_table row with Step 3 under 'Action' and 'Output/Effect'
At which step does the Kubelet start containers on a node?
AStep 2
BStep 6
CStep 4
DStep 8
💡 Hint
Check execution_table row with Step 6 for Kubelet actions
If the etcd component fails, what is the likely impact?
ACluster state cannot be stored or retrieved
BPods will not be scheduled
CContainers will not start on nodes
DUser requests will be ignored
💡 Hint
Look at the role of etcd in execution_table step 5 and variable_tracker
Concept Snapshot
Kubernetes architecture has two main parts:
- Control Plane: API Server, Scheduler, Controller Manager, etcd store cluster state and manage scheduling.
- Nodes: Run Kubelet and container runtime to run pods.
User requests go to API Server, which stores desired state in etcd.
Scheduler assigns pods to nodes.
Kubelet runs containers as per pod specs.
Full Transcript
Kubernetes architecture consists of a control plane and worker nodes. The control plane includes the API Server, Scheduler, Controller Manager, and etcd. Users send commands to the API Server, which validates and stores the desired state in etcd. The Scheduler watches for new pods and assigns them to nodes. The Controller Manager ensures the cluster state matches the desired state. Worker nodes run the Kubelet, which receives pod specs and starts containers using the container runtime. etcd stores all cluster data persistently. This flow ensures the cluster runs as expected with pods scheduled and containers running on nodes.