Skip to content

Scenario: Why is my Pod stuck in "Pending"?

"Pending" means the Scheduler is failing. It has looked at every node in the cluster and rejected all of them.

To find out why, you must ask the Scheduler:

bash
kubectl describe pod <pod-name>

Common Rejectors

1. Insufficient Resources (CPU/RAM) The cluster is full.

  • Fix: Add nodes, or reduce resources.requests.

2. Taint/Toleration Mismatch You are trying to schedule on a Node that has a "Taint" (like NoSchedule), but your Pod does not have the matching "Toleration".

Example

Master nodes often have a taint: node-role.kubernetes.io/control-plane:NoSchedule. Normal pods won't land there.

3. Node Affinity Hell You requested:

yaml
nodeAffinity:
  requiredDuringSchedulingIgnoredDuringExecution:
    nodeSelectorTerms:
      - matchExpressions:
        - key: region
          operator: In
          values: ["mars-colony-1"]

If no node has the label region=mars-colony-1, the Pod will wait forever.