Disruption preference policy
Disruption Preference Policy tells Karpenter which nodes to disrupt first when consolidating — prioritize removing the most expensive or least utilized nodes to maximize savings per disruption event.
The configuration covers:
NodePool-level budget
reasons(Underutilized, Empty, Drifted) to target on-demand nodes first for Spot replacementPod-level
karpenter.sh/do-not-disruptannotations to control which workloads move first during consolidationTopology spread constraints to prevent consolidation from concentrating pods in a single zone
For the NodePool and Deployment configuration, see the disruption-preference-policy.yaml
Actions
Combine budgets with preference policies to create a disruption strategy that removes the most expensive nodes first, during the safest windows, at a rate that doesn't impact availability.
Key takeaway: Not all disruptions save the same amount. Prioritizing on-demand node removal over Spot, and empty nodes over underutilized ones, maximizes the dollar value of each disruption event.