Courseiva

CKA Practice Question: Cluster Architecture, Installation and Configuration

Which component is responsible for assigning pods to nodes?

⚠ Common exam trap

A common mix-up: candidates confuse the kubelet's role of running pods with the scheduler's role of assigning pods to nodes, or think the API server handles scheduling because it processes pod creation requests.

Answer choices

Why each option matters

Answer the question above first, then reveal the full breakdown to understand why each option is right or wrong.

Correct answer & explanation

kube-scheduler

The kube-scheduler is responsible for assigning pods to nodes based on resource requirements, constraints, and policies. It watches for newly created pods that have no node assignment and selects an optimal node for each pod to run on.

Answer analysis

Option-by-option breakdown

For each option: why learners choose it and why it is or isn't the right answer here.

  • kube-scheduler

    Why this is correct

    kube-scheduler is the control plane component that selects the optimal node for each newly created pod. It subscribes to the API server's watch stream for pending pods, filters nodes according to resource requirements, taints/tolerations, node selectors, and affinity rules, then scores the feasible candidates to choose the best match. The decision is written back as a binding object, which sets the pod's nodeName field, so this component alone is responsible for assigning pods to nodes.

  • kubelet

    Why it's wrong here

    kubelet is the node-local agent that runs on each worker node and implements the container execution contract. It receives the pod specification after a node has already been assigned, then creates, starts, and monitors the pod's containers through the container runtime and reports status to the control plane. Although the kubelet ensures that local pods remain healthy, it has no authority to choose or change which node a pod runs on.

  • kube-apiserver

    Why it's wrong here

    kube-apiserver is the front-end of the control plane: it authenticates API requests, validates pod manifests, and persists their state to etcd. When the scheduler decides to place a pod, the apiserver records that decision as a binding and updates the pod's nodeName, but it never makes the placement decision itself. It simply exposes the API through which the scheduler communicates its chosen node.

  • kube-controller-manager

    Why it's wrong here

    kube-controller-manager runs a set of reconciliation loops that keep cluster resources in their desired state, such as the ReplicaSet controller ensuring the correct number of pod copies exist. Those controllers create or delete pod objects owned by higher-level workloads, but they do not evaluate node resources or select target nodes. Once a pod is created, control passes to the scheduler for node assignment, so the controller manager is not involved in that step.

About these practice questions

Courseiva writes every CKA question from scratch — 302 in total, each with an explanation and a wrong-answer breakdown. None are copied from real exams or dumps. Learn why practice questions differ from exam dumps →

How Courseiva writes practice questions · Editorial policy

JA

Written by Johnson Ajibi, MSc IT Security

Senior Network & Security Engineer · founder of Courseiva

This CKA practice question is part of Courseiva's free CNCF certification practice question bank. Courseiva provides original exam-style practice questions with explanations, topic-based practice, mock exams, readiness tracking, and study analytics to help learners prepare for the CKA exam.