KubernetesIntermediatePar time: 6:00

The Pods That Won't Land

All pods stuck in Pending. Three nodes exist but none will accept the workload.

The Scenario

The worker-queue deployment scaled to 3 replicas and all three pods are stuck Pending. kubectl get nodes shows three nodes in Ready state. The job queue is growing fast and SLA timers are ticking. Each node has a different scheduling blocker: one has a NoSchedule taint for GPU workloads, one has a hard pod anti-affinity rule preventing co-location, and one has all allocatable CPU requests exhausted by existing pods. The scheduler has nowhere to place any of the three new pods.

What You'll Learn

1

Reading scheduler events in kubectl describe pod to identify the blocking constraint

2

Distinguishing between taint-based, affinity-based, and resource-based scheduling failures

3

How CPU requests vs CPU limits affect scheduling even when nodes have idle capacity

4

Strategies to fix each scheduling blocker without affecting other workloads

Tools You'll Use

kubectlScheduler eventsNode describeTaint and toleration spec

Real-World Context

Pods stuck Pending with no obvious error is one of the most common K8s support questions. The scheduler silently rejects placements - you have to read events to find the real reason, and it's often multiple reasons at once.

Ready to debug this?

Free account required - sign up with GitHub or Google in 10 seconds

Play The Pods That Won't Land