Rolling Update Duration Calculator
Calculate how long a rolling update will take given maxSurge and maxUnavailable.
About Rolling Update Duration Calculator
A rolling update replaces pods in waves bounded by maxUnavailable and maxSurge: each wave can bring up to maxSurge new pods while taking down up to maxUnavailable old ones. Formula: waves = ceil(total_pods ÷ (maxUnavailable + maxSurge)), duration = waves × pod_startup_time. Increasing either maxSurge or maxUnavailable reduces the number of waves and therefore total rollout time, at the cost of more simultaneous capacity change.
Formula
duration = ceil(totalPods / (maxUnavailable + maxSurge)) × podStartupTime
- N
- Total pods in the deployment
- U
- maxUnavailable pods
- S
- maxSurge pods
- t_s
- Pod startup time in seconds
- T
- Total rollout duration in seconds
Worked example
With the default values below, Rolling Update Duration Calculator returns Total Rollout Duration of 150. Change any input above and every figure here is recalculated in your browser.
Inputs used
- Total Podsaccepts 1–100,000 pods
- 20 pods
- Max Unavailableaccepts 0–100,000 pods
- 2 pods
- Max Surgeaccepts 0–100,000 pods
- 2 pods
- Pod Startup Timeaccepts 1–36,000 seconds
- 30 seconds
Results
- Total Rollout Duration
- 150 seconds
- Total Rollout Duration
- 2.50 minutes
- Number of Waves
- 5
- Pods Replaced per Wave
- 4 pods
Step by step
- 1Pods replaced per wave: maxUnavailable + maxSurge= 4 pods
- 2Waves: ceil(total ÷ per-wave)= 5 waves
- 3Total duration: waves × startup time= 150s
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 2 decimal places, 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
Should I increase maxSurge or maxUnavailable to speed up rollouts?
Increasing maxSurge adds extra capacity during rollout without reducing available replicas — generally safer for latency-sensitive services. Increasing maxUnavailable speeds things up but temporarily reduces serving capacity, which is riskier under load.
Does this account for readiness probe delays?
Yes, as long as your pod startup time input includes the full time to pass readiness checks — that's the point at which Kubernetes considers a pod available and proceeds to the next wave.
Why did my actual rollout take longer than this estimate?
PodDisruptionBudgets, node capacity constraints forcing pod pending states, or slow image pulls on cold nodes can all extend rollout time beyond the pure wave-based calculation.
What if maxUnavailable and maxSurge are both 0?
The rollout can't make progress — Kubernetes requires at least one of maxUnavailable or maxSurge to be greater than zero for a RollingUpdate strategy.
Related Calculators
You might also need
- Cluster Upgrade Time CalculatorCommonly used together
- Job Completion Time CalculatorCommonly used together
- StatefulSet Capacity CalculatorCommonly used together
- HPA Target CalculatorCommonly used together
- Canary Deployment CalculatorCommonly used together
- Pipeline Runtime CalculatorCommonly used together
