Caulking the deployment gap: absolutely zero downtime deployments in Kubernetes
summary
Kubernetes rolling updates still produce occasional 500/502s because a pod can stop serving as it’s terminated before endpoints and iptables update, and PID 1 in many containers ignores SIGTERM so the kubelet waits the default 30s grace period. Tried tools like Argo Rollouts and ingress retries didn’t help. Practical fixes: make containers fail readiness quickly on shutdown, use blue/green or service-mesh routing, or add a preStop sleep hook (or init/signal proxy) so the pod stays reachable until endpoints are removed.
AI-written summary · about
chapters (8)
- 0:00Introduction
- 7:25Zero downtime failures
- 13:25Kubernetes pod termination
- 18:50Linux signals in containers
- 23:05PID 1 signal handling demo
- 30:40Pod lifecycle phases
- 32:48Race condition solutions
- 36:39PreStop hook solution
related talks
33mThe Gotchas of Zero-Downtime Traffic /w Kubernetes
37mZero-downtime Deployment Strategies (...) [ENG]
40mStrategies for Zero Down Time, Frequent Deployments
39m502 Bad Gateway: Zero Downtime Is More Than a Config
31mThirty seconds of silence
17mResiliency Patterns in Kubernetes
25mCrossing the Streams! Rollout Strategies to Keep Your Users Happy!
49mZero-Downtime Deployment in Kubernetes & Istio
