kubernetes scheduling_error ai_generated partial

FailedScheduling: didn't match pod topology spread constraints

ID: kubernetes/k8s-pod-topology-spread

Also available as: JSON · Markdown
80%Fix Rate
85%Confidence
50Evidence
2023-06-01First Seen

Version Compatibility

VersionStatusIntroducedDeprecatedNotes
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.

generic

Workarounds

  1. 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/

  2. 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:

  1. Remove topology spread constraints entirely 60% fail

    Loses availability guarantees — all pods may end up on one node/zone

  2. Force schedule with nodeName 85% fail

    Bypasses scheduler — breaks topology spread for the entire deployment

Error Chain

Leads to:
Preceded by:
Frequently confused with: