CKA Workloads and Scheduling Practice Question
A Pod is stuck in 'Pending' state. You run 'kubectl describe pod my-pod' and see the event: '0/3 nodes are available: 1 node(s) had taint {node-role.kubernetes.io/master: }, that the pod didn't tolerate, 2 Insufficient cpu.' The pod has resource requests: cpu: 2, memory: 1Gi. The cluster has 3 nodes: one control-plane with taint node-role.kubernetes.io/master:NoSchedule, and two worker nodes each with 1 CPU. What is the most likely cause?
⚠ Common exam trap
The trap here is that candidates may focus on the taint message and assume the control-plane node's resources are the issue (Option D), or misinterpret the 'Insufficient cpu' as a memory problem (Option A), rather than recognizing that the CPU request exceeds the capacity of the only schedulable nodes (the workers).
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
✓
The pod requests more CPU than any available node can provide.
The pod requests 2 CPU, but each worker node has only 1 CPU, making them insufficient. The control-plane node has the taint `node-role.kubernetes.io/master:NoSchedule` which the pod does not tolerate, so it is also unavailable. The event explicitly states '2 Insufficient cpu', confirming that the CPU request cannot be satisfied by any node.
Answer analysis
Option-by-option breakdown
For each option: why learners choose it and why it is or isn't the right answer here.
- ✗
The pod requests more memory than any available node can provide.
Why it's wrong here
The problem statement indicates a memory request of 1Gi. Given typical Kubernetes worker node configurations, 1Gi of memory is a relatively small request and is highly likely to be available on at least one worker node. Therefore, memory resource constraints are not the primary reason for the pod remaining in a Pending state; another resource, like CPU, is the actual bottleneck preventing scheduling.
- ✗
The pod has a higher priority than other pods and is preempting them.
Why it's wrong here
While a pod with higher priority can preempt lower-priority pods, this mechanism typically results in the eviction of existing pods to free up resources, not a prolonged Pending state due to an absolute lack of resources. Preemption implies that resources *could* be made available, but if no single node can satisfy the pod's requests even after preemption, the pod would still remain unschedulable, but the initial Pending state reason would point to resource insufficiency, not preemption itself.
- ✓
The pod requests more CPU than any available node can provide.
Why this is correct
The pod requests 2 CPUs, which exceeds the capacity of any individual worker node, as each worker node only provides 1 CPU. Furthermore, the control-plane node, which might have sufficient CPU, is typically tainted with `node-role.kubernetes.io/control-plane:NoSchedule` or similar, preventing the scheduler from placing this pod on it unless the pod explicitly tolerates this taint. Consequently, no suitable node exists in the cluster to satisfy the pod's CPU request, leading to its Pending status.
- ✗
The control-plane node has insufficient resources.
Why it's wrong here
The control-plane node is typically configured with taints, such as `node-role.kubernetes.io/control-plane:NoSchedule`, to prevent general workloads from being scheduled on it and preserve its resources for critical cluster components. Even if the control-plane node possessed sufficient resources to accommodate the pod, the pod would not be scheduled there unless it explicitly defined a toleration for that specific taint, which is not the case here. Therefore, its resource availability is moot for this pod.
Go deeper
Related to this question
Learn chapter
Kubernetes Architecture Overview
Key term
Ingress Resources
Ingress Resources are Kubernetes API objects that manage external access to services inside a cluster, typically HTTP and HTTPS traffic, by defining rules for routing requests based on hostnames and paths.
Key term
kubectl Command Reference
kubectl is the command-line tool used to interact with and manage Kubernetes clusters by sending commands to the Kubernetes API.
About these practice questions
One of 302 original CKA practice questions on Courseiva, each with a full explanation and wrong-answer analysis — not exam dumps or protected exam content. Learn why practice questions differ from exam dumps →
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.