CKAD Application Design and Build Practice Question
You run 'kubectl apply -f pod.yaml' but the pod remains in 'Pending' state. 'kubectl describe pod' shows '0/1 nodes are available: 1 Insufficient cpu'. What is the most likely cause?
⚠ Common exam trap
Candidates often confuse resource requests and limits. The scheduler uses CPU requests, not limits, to determine node capacity. Limits are for resource enforcement after scheduling.
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's CPU request exceeds the available CPU capacity on any node
The error '0/1 nodes are available: 1 Insufficient cpu' indicates that the pod's CPU request (specified in the container spec under `resources.requests.cpu`) exceeds the allocatable CPU capacity on any node in the cluster. The scheduler evaluates CPU requests, not limits, for admission decisions; if no node has enough unallocated CPU to satisfy the request, the pod remains Pending.
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's memory limit is too low
Why it's wrong here
A low memory limit causes the container to be killed by the OOM killer once it exceeds the limit, producing an OOMKilled or CrashLoopBackOff state, not a Pending pod. For a pod to remain Pending, the Kubernetes scheduler must fail to place it, and the event 'Insufficient memory' would appear—not 'Insufficient cpu'. Since the message specifically mentions CPU, memory limits are irrelevant to this scheduling failure.
- ✗
The container image is not found in the registry
Why it's wrong here
When a container image is missing or has invalid tags, the kubelet on an already scheduled node reports ImagePullBackOff or ErrImagePull. However, the pod in this scenario is still Pending, meaning it has not yet been assigned to any node by the scheduler. Image resolution happens after scheduling, so a missing image cannot generate the scheduling-related event 'Insufficient cpu'.
- ✗
The node is under disk pressure
Why it's wrong here
Disk pressure on a node is detected by kubelet and reported as a node condition such as NodeDiskPressure, which makes the node unschedulable or triggers eviction. The scheduler would mention disk pressure explicitly in events (e.g., 'node(s) had pressure') rather than 'Insufficient cpu'. Moreover, disk pressure does not affect the CPU fit calculation; the event text is a direct failure from the resource FitError predicate, so this option misrepresents the actual cause.
- ✓
The pod's CPU request exceeds the available CPU capacity on any node
Why this is correct
The exact scheduler event 'Insufficient cpu' means no node in the cluster satisfies the pod's CPU request after accounting for the allocatable CPU and existing pod requests. The pod remains Pending because the scheduler cannot find a feasible node, and it does not even attempt to bind the pod. This is the correct interpretation because the message directly indicates a lack of available CPU capacity, not memory, disk, or image issues.
Go deeper
Related to this question
About these practice questions
Courseiva writes every CKAD question from scratch — 826 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 →
JA
Written by Johnson Ajibi, MSc IT Security
Senior Network & Security Engineer · founder of Courseiva
This CKAD 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 CKAD exam.