Skip to content
ENExplore Calculators

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

  1. 1Pods replaced per wave: maxUnavailable + maxSurge= 4 pods
  2. 2Waves: ceil(total ÷ per-wave)= 5 waves
  3. 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.

Rolling Update Duration Calculator | Calcrivo