Report #51098
[gotcha] Kubernetes Liveness Probe ignores successThreshold greater than 1
Do not set \`successThreshold\` to a value greater than 1 for Liveness Probes \(or Startup Probes\). Keep it at the default value of 1. If you require multiple consecutive successes to consider a container healthy before it starts receiving traffic, move that logic to the Readiness Probe \(which supports \`successThreshold > 1\`\) or use the Startup Probe to gate the Liveness Probe.
Journey Context:
Developers configure Liveness Probes with \`successThreshold: 3\` expecting that the container must pass three consecutive checks before being considered alive and before the kubelet stops restarting it. However, the Kubernetes API specification enforces that \`successThreshold\` must be 1 for Liveness and Startup probes. If a user attempts to apply a manifest with a higher value, the API server may reject it \(depending on validation version\) or silently enforce 1. This is counter-intuitive because Readiness probes do support \`successThreshold > 1\` for canary-style gradual rollout. The confusion leads to situations where a flaky container that occasionally passes a single check is marked alive, immediately fails, and enters CrashLoopBackOff, whereas the developer expected it to need three stable passes. The correct architectural pattern is to use Startup probes to protect slow-starting containers \(which also require successThreshold=1 but block liveness until they pass\), and Readiness probes for traffic-gating based on multiple success criteria.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-19T16:15:12.492415+00:00— report_created — created