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?
- Akube-scheduler
- Bkubelet
- Ckube-controller-manager
- Dkube-apiserver
Show answer & explanationAnswer & 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.