Pod Anti-Affinity Calculator
Estimate pod spread outcomes across nodes when podAntiAffinity rules are enforced.
About Pod Anti-Affinity Calculator
podAntiAffinity (or the more flexible topologySpreadConstraints) prevents replicas from stacking on the same node or zone, trading some scheduling flexibility for resilience — a single node or zone failure can only take out a bounded fraction of replicas. The ceiling on replicas is zones × nodes-per-zone × max-allowed-per-node; requesting more replicas than that ceiling leaves excess pods permanently Pending.
Formula
maxReplicas = zones × nodesPerZone × maxPerNode
- Z
- Number of availability zones
- N_z
- Nodes per zone
- P_n
- Max replicas allowed per node
- R_{max}
- Maximum replicas under anti-affinity constraint
Worked example
With the default values below, Pod Anti-Affinity Calculator returns Max Replicas Under Anti-Affinity of 15. Change any input above and every figure here is recalculated in your browser.
Inputs used
- Availability Zonesaccepts 1–20 zones
- 3 zones
- Nodes per Zoneaccepts 1–10,000 nodes
- 5 nodes
- Max Replicas per Nodeaccepts 1–100 pods
- 1 pods
- Desired Replicasaccepts 1–1,000,000 pods
- 12 pods
Results
- Max Replicas Under Anti-Affinity
- 15 pods
- Desired Replicas Fit
- true
- Replicas per Zone (Even Spread)
- 4 pods
- Capacity Lost per Zone Failure
- 33.3%
Step by step
- 1Max replicas = zones × nodes per zone × max per node= 15
- 2Even spread per zone= 4
Assumptions and limits
- The result is derived only from the 4 inputs listed above. Anything not among them is not part of the calculation.
- In particular, this calculator does not take inflation, tax, fees or charges or compounding frequency into account.
- Figures are rounded for display to 1 decimal place, so totals built from several rounded parts can differ slightly from the unrounded arithmetic.
How these calculators are built and tested is described on the Methodology page. If a figure looks wrong, please report it.
Frequently Asked Questions
What's the difference between podAntiAffinity and topologySpreadConstraints?
podAntiAffinity is boolean (avoid/prefer co-location) and gets computationally expensive at scale. topologySpreadConstraints explicitly controls the maximum skew between topology domains (e.g. max 1 pod difference between zones) and is the newer, more scalable, more precise mechanism for even spreading.
What happens if desired replicas exceed the anti-affinity ceiling?
With a hard (required) anti-affinity rule, excess pods beyond the ceiling stay Pending indefinitely since no eligible node/zone slot remains — switch to a soft (preferred) rule or add nodes/zones to raise the ceiling.
Why does spreading across zones matter for availability?
Cloud availability zones fail independently — spreading replicas evenly means a single zone outage removes at most 1/N of capacity (matching zoneFailureImpactPercent) rather than potentially all of it if replicas happened to cluster in one zone.
