KCNA Kubernetes Fundamentals Practice Question
A pod is stuck in Pending state. You run 'kubectl describe pod' and see the event '0/3 nodes are available: 1 node(s) had taint(s) that the pod didn't tolerate, 2 node(s) had insufficient memory.'. What is the most likely cause?
⚠ Common exam trap
The CNCF exam often tests the distinction between scheduling failures (like taints and resource insufficiency) and runtime failures (like missing container runtime or scheduler), tricking candidates into picking a generic cause like 'kube-scheduler not running' when the detailed event clearly shows the scheduler is working.
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 does not have tolerations for the node's taints and memory is insufficient on other nodes
The event '0/3 nodes are available: 1 node(s) had taint(s) that the pod didn't tolerate, 2 node(s) had insufficient memory' directly indicates that the pod failed scheduling because it lacks required tolerations for a tainted node, and the remaining nodes do not have enough memory to satisfy the pod's resource requests. This matches option A, as the pod's tolerations are missing for the tainted node, and memory is insufficient on the other two nodes.
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 does not have tolerations for the node's taints and memory is insufficient on other nodes
Why this is correct
The scheduler event shows two distinct blockers: one node rejected the pod due to an untolerated taint, and the other two lacked sufficient memory. No node therefore satisfies both taint tolerations and resource requests, leaving the pod unscheduled.
- ✗
The kube-scheduler is not running
Why it's wrong here
A stopped kube-scheduler would leave pods unscheduled with no events at all, since nothing evaluates nodes or writes scheduling conditions. It is tempting because scheduler failure does cause Pending pods, and would be correct when no node-fit events appear and no node ever receives the pod.
- ✗
The container runtime is not installed on any node
Why it's wrong here
A missing container runtime would surface as ImagePull or container creation errors after scheduling, not as a scheduler event listing node taints and memory shortfalls. It is tempting because runtime faults do block pod startup, and would be correct when the pod is assigned to a node but never reaches Running.
- ✗
The pod's resource requests exceed available resources on all nodes
Why it's wrong here
Insufficient memory on two nodes is only part of the event; the taint rejection on the third node is equally decisive, so resource requests alone do not explain the Pending state. It is tempting because memory pressure is a common scheduling failure, and would be correct if every node reported insufficient memory.
About these practice questions
One of 930 original KCNA 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 →
Same concept, more angles
1 more way this is tested on KCNA
These questions test the same concept from different angles. Work through them to make sure you can recognise it however the exam phrases it.
Variation 1. A pod is stuck in 'Pending' state. 'kubectl describe pod' shows '0/4 nodes are available: 4 node(s) had taint {node.kubernetes.io/unreachable: }, that the pod didn't tolerate.' What is the most likely cause?
easy- A.All nodes have disk pressure.
- ✓ B.All nodes are unreachable or have been cordoned.
- C.The pod has a toleration that matches the taint.
- D.The nodes do not have enough CPU or memory.
Why B: The taint `node.kubernetes.io/unreachable` is automatically added by the node controller when a node becomes unreachable (e.g., network failure, kubelet stops heartbeating). The error shows all 4 nodes have this taint and the pod has no matching toleration, meaning the scheduler cannot place the pod. This directly indicates all nodes are unreachable or have been cordoned (which also adds the `node.kubernetes.io/unschedulable` taint, but here the specific taint is `unreachable`).
JA
Written by Johnson Ajibi, MSc IT Security
Senior Network & Security Engineer · founder of Courseiva
This KCNA 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 KCNA exam.