Kubernetes and Cloud Native Associate (KCNA)Kubernetes FundamentalsHard

A cluster operator is investigating why a Pod is stuck in a 'Pending' state. After checking the Pod's events, they see messages indicating 'FailedScheduling'. Which Kubernetes control plane component is responsible for making decisions about which Node a new Pod should run on, and therefore would report such a failure?

  1. Akube-scheduler
  2. Bkubelet
  3. Ckube-controller-manager
  4. Dkube-apiserver
Show answer & explanation

Correct answer: A. kube-scheduler

The kube-scheduler is responsible for watching for newly created Pods with no assigned Node, and then selecting a Node for them to run on. A 'FailedScheduling' event directly indicates an issue with the scheduler's ability to place the Pod.

Why the other options are wrong

  • B. The kubelet runs on each Node and manages Pods assigned to that Node, it doesn't perform initial scheduling.
  • C. The kube-controller-manager runs controllers to maintain cluster state, not to schedule Pods.
  • D. The kube-apiserver exposes the API and handles requests, but doesn't schedule Pods.

kube-scheduler

A Kubernetes control plane component that watches for newly created Pods that have no assigned node, and selects a node for them to run on. It considers resource requirements, hardware/software/policy constraints, affinity/anti-affinity specifications, and data locality.

  • Assigns Pods to Nodes.
  • Considers various constraints and requirements.
  • Crucial for Pod placement and resource utilization.

Memory trick: API for Access, Scheduler for Spots, Controller for Consistency, Kubelet for Kicking off.

More Kubernetes Fundamentals questions