K8s Troubleshooting — Pending Pods
Note, full K8s troubleshooting mind map is available at: “K8s Troubleshooting MindMap”
What is “Pending Pods” Error?
In K8s, when a pod is in a “Pending” state, it means that the pod hasn’t been successfully scheduled and started on a worker node. There can be various reasons why a pod remains in this state, and it’s often crucial to diagnose the root cause to ensure proper cluster operation.
For example, the error message may look like:
Name: my-pending-pod
Namespace: default
...
Status: Pending
...
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Warning FailedScheduling 30s (x8 over 3m) default-scheduler 0/3 nodes are available: 1 Insufficient cpu, 2 node(s) had taint {key=value:NoSchedule}, that the pod didn't tolerate.
In this example, the error message indicates that the pod couldn’t be scheduled because:
- One node doesn’t have enough CPU.
- Two nodes have a taint that the pod doesn’t tolerate.
To solve such issues, you may need to adjust pod specifications, node taints/tolerations…