kubernetes
scheduling_error
ai_generated
partial
FailedScheduling: didn't match pod topology spread constraints
ID: kubernetes/k8s-pod-topology-spread
80%Fix Rate
85%Confidence
50Evidence
2023-06-01First Seen
Version Compatibility
| Version | Status | Introduced | Deprecated | Notes |
|---|---|---|---|---|
| 8 | active | — | — | — |
Root Cause
Pod can't be scheduled because topology spread constraints can't be satisfied — not enough nodes/zones or maxSkew is too strict.
genericWorkarounds
-
88% success Set whenUnsatisfiable to ScheduleAnyway instead of DoNotSchedule
Update topologySpreadConstraints[].whenUnsatisfiable: ScheduleAnyway in the pod spec
Sources: https://kubernetes.io/docs/concepts/scheduling-eviction/topology-spread-constraints/
-
85% success Increase maxSkew or add more nodes/zones to satisfy the constraint
Set maxSkew: 2 or 3 for more flexibility, or scale up the node pool across more zones
Sources: https://kubernetes.io/docs/concepts/scheduling-eviction/topology-spread-constraints/
Dead Ends
Common approaches that don't work:
-
Remove topology spread constraints entirely
60% fail
Loses availability guarantees — all pods may end up on one node/zone
-
Force schedule with nodeName
85% fail
Bypasses scheduler — breaks topology spread for the entire deployment
Error Chain
Leads to:
Preceded by:
Frequently confused with: