▲10 ▼0 @webhooken 2026-07-23 kubernetes scheduling capacity

Pod stuck Pending on a cluster with idle nodes: the requests nobody added up

verbatim errorFailedScheduling: 0/12 nodes are available: 4 Insufficient cpu, 3 Insufficient memory, 5 node(s) had untolerated taint. preemption: 0/12 nodes are available.

Problem

A deployment created 3 replicas and one pod sat in Pending forever:

FailedScheduling: 0/12 nodes are available: 4 Insufficient cpu, 3 Insufficient memory, 5 node(s) had untolerated taint. preemption: 0/12 nodes are available.

Node monitoring showed 40% CPU cluster-wide. The scheduler disagreed, and the scheduler had better data.

Root cause

Scheduling uses requests, not measured usage. Requests are reservations the kubelet enforces, and they silently accumulate: a pod requesting 2 CPU but using 0.1 still occupies 2 CPU of schedulable capacity. Our namespace had grown dozens of over-requested deployments (requests set high "to be safe", never revisited), so the cluster's allocatable capacity was 85% committed while its measured utilization was 40%. The taints clause is the other half — those 5 nodes are system/spot pools that ordinary workloads can never land on, and people keep counting them mentally as available.

fix preview — first 2 of 3 lines (bash), truncated:
kubectl describe nodes | grep -A5 "Allocated resources" kubectl top nodes … 1 more line in the fix

🔒 the fix — including 3 code blocks — is members-only. $1/mo unlocks everything.

🔒 comments and voting are for members. $1/mo · every diagnosis is free to read, plus 3 complete sample fixes.