Crossing the Streams! Rollout Strategies to Keep Your Users Happy!
summary
Demonstration shows how to avoid user-visible downtime by combining Spring Boot 2.3 graceful shutdown with Kubernetes probes and a short pre-stop delay: a 20s pre-stop sleep plus the default 30s terminationGracePeriod gives the control plane time to remove pod IPs, while Spring stops new requests and lets in-flight threads finish. A JMeter load (20 threads) produces errors without these settings and no errors with them. For immutable images, a Contour shutdown manager for Envoy polls Prometheus to drain connections.
AI-written summary · about
chapters (14)
- 0:00Introduction to rollout strategies
- 1:17Why downtime happens in Kubernetes
- 2:20Kubernetes deployment basics
- 3:44Pod termination risks
- 6:07Graceful shutdown process
- 8:55Spring Boot demo setup
- 10:42Out-of-the-box deployment issues
- 12:13Solving control plane lag
- 13:16Spring Boot graceful shutdown
- 16:31Testing with graceful shutdown
- 18:23Sidecar pattern for unmodifiable apps
- 19:26Contour shutdown manager
- 21:33Tuning termination grace periods
- 24:21Resources and Q&A
related talks
33mThe Gotchas of Zero-Downtime Traffic /w Kubernetes
39m502 Bad Gateway: Zero Downtime Is More Than a Config
40mZero-Downtime Java Enterprise Applications With Kubernetes
38mCaulking the deployment gap: absolutely zero downtime deployments in Kubernetes
43mZero-downtime deployment with Kubernetes, Spring Boot and Flyway
37mZero-downtime Deployment Strategies (...) [ENG]
26mWait! Can Your Pod Survive a Restart?
49mKubernetes Native Java
