zero-downtime deployment for the nginx ingress controller
Summary
If the nginx-controller is terminated Kubernetes kills it immediately:
# strace -p 651126 -e 'trace=!all'
strace: Process 651126 attached
+++ killed by SIGKILL +++
We should support graceful shutdown for when we need to cycle these pods
- https://medium.com/flant-com/kubernetes-graceful-shutdown-nginx-php-fpm-d5ab266963c2
- https://blog.gruntwork.io/delaying-shutdown-to-wait-for-pod-deletion-propagation-445f779a8304
- https://medium.com/codecademy-engineering/kubernetes-nginx-and-zero-downtime-in-production-2c910c6a5ed8
Method to address
- Long term: Upgrade NGINX Ingress (#2377 (closed) #2228 (closed) #1780 (closed) #1227)
- Short term: Default to including #2404 (comment 451995292)
Edited by Jason Plum