CKAD Practice Question: Application Environment, Configuration and Security
A pod is stuck in Pending state. You run 'kubectl describe pod mypod' and see the event: '0/3 nodes are available: 1 Insufficient memory, 2 Insufficient cpu'. The pod has resource requests defined. Which action would allow the pod to be scheduled?
⚠ Common exam trap
CNCF often tests the misconception that simply recreating the pod or adjusting only one resource dimension will fix scheduling issues, when in fact the scheduler evaluates all resource requests simultaneously against each node's allocatable capacity.
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
✓
Decrease the memory and CPU requests to fit within available node resources
The pod is unschedulable because the cluster's three nodes collectively lack sufficient CPU and memory to satisfy the pod's resource requests. Decreasing the memory and CPU requests to fit within the available node resources (option C) directly resolves the scheduling failure by making the pod's resource demands compatible with the remaining capacity on at least one 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.
- ✗
Increase the resource requests for the container
Why it's wrong here
Increasing the container's resource requests would make the pod even more demanding from a scheduling perspective. A Pending pod usually indicates the kube-scheduler cannot find a node whose allocatable CPU and memory are sufficient for the requested amounts. Raising the requests raises the resource floor the scheduler must satisfy, which only worsens the unschedulable condition and delays a feasible placement.
- ✗
Delete the pod and recreate it with the same spec
Why it's wrong here
Deleting and recreating the pod with an identical spec will not change the underlying scheduling constraint. Pending is not a transient pod state that a fresh object will escape; it reflects the scheduler's deterministic evaluation of the pod's resource requests against current node capacity. Unless cluster resources have freed up or the specification changes, the new pod will meet the same Insufficient CPU/memory events and remain Pending.
- ✓
Decrease the memory and CPU requests to fit within available node resources
Why this is correct
The kube-scheduler places a pod only if every node has enough unused allocatable resources to meet the pod's requests. If the combined memory and CPU requests exceed what is available on any node, the pod is stuck in Pending. Lowering both request values to fit within the allocatable capacity remaining on an existing node allows the scheduler to find a feasible host and bind the pod.
- ✗
Decrease the CPU request but keep the memory request the same
Why it's wrong here
Reducing only the CPU request does not resolve the scheduling failure because the scheduler checks all resource dimensions simultaneously. If the memory request still exceeds the allocatable memory on every node, the kube-scheduler will emit an 'Insufficient memory' event and leave the pod in Pending. The CPU reduction is irrelevant until the memory request also fits within available node resources.
Visual reference
Go deeper
Related to this question
About these practice questions
This CKAD question is part of Courseiva's 826-question bank — original exam-style content with full explanations and wrong-answer analysis, never real exam questions or exam 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.