Bird
Raised Fist0
Kubernetesdevops~10 mins

Control plane components (API server, scheduler, controller manager, etcd) in Kubernetes - Step-by-Step Execution

Choose your learning style10 modes available
Process Flow - Control plane components (API server, scheduler, controller manager, etcd)
User/API Client
↓
API Server
↓
etcd (State Storage)
↓
Controller Manager
The user sends requests to the API server, which stores state in etcd. The controller manager and scheduler watch the API server to manage cluster state and assign work.
Execution Sample
Kubernetes
kubectl run mypod --image=nginx
# API server receives request
# Scheduler assigns pods to nodes
# Controller manager ensures desired state
# etcd stores cluster state
This sequence shows how a pod request flows through control plane components to schedule and maintain pods.
Process Table
StepComponentActionInputOutput/Effect
1User/API ClientSends requestkubectl run mypod --image=nginxRequest sent to API server
2API ServerReceives requestkubectl run mypod --image=nginxValidates and processes request
3API ServerReads/Writes stateRequest dataWrites pending pod to etcd
4SchedulerWatches API serverPod pending schedulingAssigns pod to a node
5Controller ManagerWatches API serverPod assigned to nodeEnsures pod is running as desired
6etcdStores cluster statePod info updatesPersistent cluster state updated
7API ServerResponds to userPod info from etcdReturns pod info to kubectl
8User/API ClientReceives responsePod infoDisplays pod info to user
💡 Request completed and pod state maintained by control plane components
Status Tracker
VariableStartAfter Step 2After Step 4After Step 6Final
Pod Request StateNoneReceived by API serverAssigned to node by SchedulerStored in etcdConfirmed running by Controller Manager
Cluster State in etcdInitial cluster stateNo changeNo changeUpdated with pod infoUpdated with pod running status
Key Moments - 3 Insights
Why does the scheduler assign pods after the API server receives the request?
Because the API server validates and stores the pod request first (see execution_table step 3), the scheduler can then watch for new pods needing assignment (step 4).
How does etcd help keep the cluster state consistent?
etcd stores the persistent cluster state (step 6). All components read and write to etcd via the API server, ensuring a single source of truth.
What role does the controller manager play after the scheduler assigns a pod?
The controller manager ensures the pod is running as desired by monitoring the API server state and making adjustments if needed (step 5).
Visual Quiz - 3 Questions
Test your understanding
Look at the execution table, at which step does the scheduler assign a pod to a node?
AStep 3
BStep 5
CStep 4
DStep 6
💡 Hint
Check the 'Component' and 'Action' columns in execution_table row 4.
According to the variable tracker, what is the state of the pod request after step 6?
AStored in etcd
BAssigned to node by Scheduler
CReceived by API server
DConfirmed running by Controller Manager
💡 Hint
Look at 'Pod Request State' column 'After Step 6' in variable_tracker.
If the API server did not update etcd, what would happen to the cluster state?
ACluster state would remain consistent
BCluster state would not update with pod info
CScheduler would assign pods twice
DController manager would ignore pods
💡 Hint
Refer to execution_table step 6 and variable_tracker 'Cluster State in etcd'.
Concept Snapshot
Control plane components manage Kubernetes cluster state.
API server handles requests and communicates with etcd.
Scheduler assigns pods to nodes.
Controller manager ensures desired state.
etcd stores persistent cluster data.
Full Transcript
In Kubernetes, the control plane components work together to manage the cluster. The user sends a request to the API server, which validates and processes it. The API server reads and writes cluster state to etcd, the persistent storage. The scheduler watches for pods needing assignment and assigns them to nodes. The controller manager monitors the cluster state and ensures pods run as expected. This flow keeps the cluster consistent and responsive to user commands.

Practice

(1/5)
1. Which component of the Kubernetes control plane acts as the main entry point for all REST commands and handles communication with the cluster?
easy
A. etcd
B. Scheduler
C. API server
D. Controller manager

Solution

  1. Step 1: Understand the role of the API server

    The API server is the front door of the Kubernetes control plane. It receives REST requests and processes them.
  2. Step 2: Compare with other components

    The scheduler assigns pods to nodes, the controller manager runs controllers, and etcd stores cluster data. None handle REST communication directly.
  3. Final Answer:

    API server -> Option C
  4. Quick Check:

    API server = main REST entry point [OK]
Hint: API server handles all REST requests to the cluster [OK]
Common Mistakes:
  • Confusing scheduler with API server
  • Thinking controller manager handles REST calls
  • Assuming etcd processes API requests
2. Which of the following is the correct command to check the status of the Kubernetes scheduler component?
easy
A. kubectl get pods -n kube-system | grep scheduler
B. kubectl get nodes --show-scheduler
C. kubectl describe scheduler
D. kubectl get scheduler-status

Solution

  1. Step 1: Identify how to check scheduler status

    The scheduler runs as a pod in the kube-system namespace, so checking pods there helps find it.
  2. Step 2: Analyze each command

    kubectl get pods -n kube-system | grep scheduler lists pods in kube-system and filters for scheduler, which is correct. The other commands are invalid kubectl commands or do not exist.
  3. Final Answer:

    kubectl get pods -n kube-system | grep scheduler -> Option A
  4. Quick Check:

    Scheduler runs as pod, check pods in kube-system [OK]
Hint: Scheduler runs as pod; check pods in kube-system namespace [OK]
Common Mistakes:
  • Using invalid kubectl commands
  • Trying to describe scheduler directly
  • Assuming scheduler is a node property
3. Given the following scenario: The Kubernetes scheduler fails to assign pods to nodes. Which control plane component is most likely responsible for detecting and fixing this issue automatically?
medium
A. API server
B. kubelet
C. etcd
D. Controller manager

Solution

  1. Step 1: Understand the roles of components

    The controller manager runs controllers that watch cluster state and fix issues like unscheduled pods.
  2. Step 2: Identify responsible component for fixing scheduling issues

    When scheduler fails, controller manager detects pods not assigned and may trigger rescheduling or alerts. API server only handles requests, etcd stores data, kubelet runs on nodes.
  3. Final Answer:

    Controller manager -> Option D
  4. Quick Check:

    Controller manager fixes cluster state issues [OK]
Hint: Controller manager fixes cluster state problems automatically [OK]
Common Mistakes:
  • Confusing API server with controller manager
  • Thinking etcd fixes issues
  • Assuming kubelet manages scheduling
4. You notice that the etcd cluster is not storing new data correctly. Which of the following is the most likely cause and fix?
medium
A. etcd disk is full; free up disk space or increase storage
B. Scheduler is overloaded; scale scheduler pods
C. API server is down; restart the API server pods
D. Controller manager crashed; restart controller manager

Solution

  1. Step 1: Identify symptoms related to etcd

    etcd stores cluster data. If it fails to store new data, disk space or storage issues are common causes.
  2. Step 2: Match cause and fix

    API server, scheduler, and controller manager issues do not directly cause etcd storage failure. Disk full on etcd node is the likely cause; freeing space or increasing storage fixes it.
  3. Final Answer:

    etcd disk is full; free up disk space or increase storage -> Option A
  4. Quick Check:

    etcd storage issues = disk full fix [OK]
Hint: etcd storage issues often mean disk full; check storage first [OK]
Common Mistakes:
  • Restarting unrelated components
  • Ignoring disk space on etcd nodes
  • Assuming scheduler affects etcd storage
5. You want to ensure high availability of the Kubernetes control plane. Which combination of components should you deploy in multiple replicas to avoid a single point of failure?
hard
A. Multiple schedulers and controller managers only
B. Multiple API servers and etcd nodes
C. Multiple etcd nodes only
D. Multiple API servers only

Solution

  1. Step 1: Understand high availability needs

    High availability means no single point of failure. Both API servers and etcd store critical data and handle requests.
  2. Step 2: Identify components to replicate

    API servers can run multiple replicas behind a load balancer. etcd must run as a cluster with multiple nodes for data safety. Scheduler and controller manager can be run as leader election but are less critical to replicate for HA.
  3. Final Answer:

    Multiple API servers and etcd nodes -> Option B
  4. Quick Check:

    HA = replicate API servers + etcd nodes [OK]
Hint: Replicate API servers and etcd for control plane high availability [OK]
Common Mistakes:
  • Replicating only schedulers or controller managers
  • Ignoring etcd clustering
  • Assuming API server alone is enough
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard