CKA Troubleshooting Practice Question
A pod remains in Pending state. You run 'kubectl describe pod mypod' and see the following event: '0/3 nodes are available: 2 node(s) had taint {node-role.kubernetes.io/control-plane: }, that the pod didn't tolerate, 1 node(s) didn't match pod anti-affinity rules.' What is the best action to schedule the pod?
⚠ Common exam trap
The trap here is that candidates often focus on the taint issue (options C or D) because it appears first in the event message, but they overlook the anti-affinity conflict on the third node, which is the actual blocking constraint for that node.
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
✓
Modify the pod's anti-affinity rules or remove the conflicting pod on the third node
The pod is unschedulable because one node has a pod anti-affinity rule conflict, and the other two nodes have a control-plane taint. The best action is to modify the pod's anti-affinity rules (e.g., relax the requiredDuringSchedulingIgnoredDuringExecution constraint) or remove the conflicting pod on the third node, as this directly resolves the scheduling conflict without affecting the control-plane taint or replicas.
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 number of replicas
Why it's wrong here
Increasing the number of replicas for a Deployment or StatefulSet only instructs the controller to maintain more instances of the pod. It does not alter the underlying scheduling constraints, such as node taints or pod anti-affinity rules, that prevent the *initial* pod from being scheduled. Each new replica would face the exact same scheduling obstacles, resulting in multiple pending pods rather than resolving the fundamental issue. Therefore, this action would not help schedule the original pod.
- ✓
Modify the pod's anti-affinity rules or remove the conflicting pod on the third node
Why this is correct
The `podAntiAffinity` rule explicitly prevents a pod from being scheduled on a node that already hosts another pod matching specific labels within a defined topology domain. If the `kubectl describe po` output indicates an anti-affinity conflict on the third node, either relaxing the `podAntiAffinity` rule in the pod's specification or removing the existing, conflicting pod from that node would allow the pending pod to be scheduled. This directly resolves the constraint preventing the pod from finding a suitable node.
- ✗
Remove the node.kubernetes.io/control-plane taint from the control plane nodes
Why it's wrong here
Removing the `node.kubernetes.io/control-plane` taint from control plane nodes would indeed make those nodes eligible for general workload scheduling, assuming no other constraints. However, this is generally an unsafe practice in a production cluster, as it can lead to resource contention, performance degradation, and stability issues for critical control plane components. While it might technically allow the pod to schedule if the control plane nodes were the only available ones, it's not a recommended or safe solution for a pending pod issue, especially when anti-affinity is also a factor.
- ✗
Add a toleration for the control-plane taint to the pod spec
Why it's wrong here
Adding a toleration would only address the taint issue on the control-plane nodes, but it does not resolve the anti-affinity conflict on the third node. The pod still cannot be scheduled because one node violates anti-affinity rules. Therefore, this is not the best action.
Visual reference
Go deeper
Related to this question
Learn chapter
Kubernetes Architecture Overview
Key term
Network Policies
A Kubernetes resource that controls how pods communicate with each other and with other network endpoints, acting as a firewall for pod-to-pod traffic.
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
Courseiva writes every CKA question from scratch — 302 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 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.