CKA Troubleshooting Practice Question
You attempt to schedule a pod but it remains 'Pending'. 'kubectl describe pod' shows the event: '0/3 nodes are available: 3 node(s) didn't match node selector.' What is the MOST likely cause?
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 nodeSelector does not match any node labels
The error '0/3 nodes are available: 3 node(s) didn't match node selector' directly indicates that the pod has a nodeSelector that does not match any node's labels. Option A (PVC not bound) would show a different error like 'persistentvolumeclaim not found'. Option B (insufficient resources) would show 'Insufficient memory/cpu'. Option C (taints not tolerated) would show 'node(s) had taints'. Therefore, the most likely cause is that the pod's nodeSelector does not match any node labels, which is Option D.
Answer analysis
Option-by-option breakdown
For each option: why learners choose it and why it is or isn't the right answer here.
- ✗
A PersistentVolumeClaim is not bound
Why it's wrong here
A scheduler cannot place a pod that references a PersistentVolumeClaim that is unbound or pending because the volume must be attached before the pod can start. The events from `kubectl describe pod` would explicitly mention `persistentvolumeclaim` and show messages like "persistentvolumeclaim not found" or "unbound volume", not a node selector mismatch. This failure mode is fundamentally different: it originates from volume binding rather than from node label selection, so it would not explain a pending pod caused by an absent label match.
- ✗
All nodes have insufficient memory or CPU
Why it's wrong here
If every node lacks enough allocatable memory or CPU to satisfy the pod's requests, the scheduler will report per-node failure events containing entries such as `Insufficient memory` and `Insufficient cpu`. These resource-fit checks are separate predicates from label matching; a nodeSelector mismatch would generate an event like `didn't match node selector` instead. Because the question's diagnostic would cite resource insufficiency rather than label selection, this option is incorrect for a pure nodeSelector problem.
- ✗
The nodes have taints that the pod does not tolerate
Why it's wrong here
A taint on a node repels pods unless the pod has a matching toleration, and the scheduler logs events such as `node(s) had untolerated taint` for every tainted node. This is an exclusionary mechanism based on taint keys, not a requirement for positive label matching like nodeSelector. If taints were the cause, `kubectl describe pod` would show taint-related messages, not a `node selector` failure, making this option wrong for the stated symptom.
- ✓
The pod's nodeSelector does not match any node labels
Why this is correct
A nodeSelector in the pod spec requires the selected node to have all the specified label key-value pairs. If no node in the cluster carries those labels, the scheduler marks those nodes as failing the `node selector` predicate and the pod remains Pending with an event like `0/N nodes are available: N node(s) didn't match node selector`. This is the canonical cause of a pending pod when there are no volume, resource, or taint issues, and it is confirmed by checking node labels with `kubectl get nodes --show-labels`.
Go deeper
Related to this question
Learn chapter
Troubleshooting Cluster and Node Issues
Key term
Node Affinity
Node Affinity is a set of rules used by Kubernetes to determine which nodes a pod can be scheduled on, based on labels assigned to the nodes.
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
This CKA question is part of Courseiva's 302-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 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.