KubernetesCloudReliabilityZeroDowntime
Kubernetes Pod Lifecycle ve Zero-Downtime Graceful Shutdown Stratejileri
Sıfır kesinti (Zero-Downtime) ile sürüm dağıtımı yaparken podların SIGTERM sinyalini nasıl ele alması gerektiğini adım adım inceliyoruz.


Zero-Downtime Dağıtımların Kritik Parçası: Graceful Shutdown
Kubernetes'te yeni bir deployment aldığınızda eski podlar anında öldürülmez; belirli bir yaşam döngüsü protokolü işletilir. Eğer uygulamanız bu sinyalleri dinlemiyorsa, işlemekte olduğu kullanıcı istekleri yarıda kesilir ve 502 Bad Gateway hataları üretilir.
Pod Sonlanma Aşamaları:
- Pod durumu
Terminatingolarak güncellenir. - Kube-proxy ve Service Endpoint listesinden pod IP'si kaldırılır.
preStophook tetiklenir (varsa).- Konteynere
SIGTERMsinyali gönderilir. terminationGracePeriodSecondssüresi boyunca uygulamanın mevcut istekleri bitirmesi beklenir.- Süre bittiğinde hala kapanmadıysa
SIGKILLgönderilir.
yamlspec: containers: - name: web-app image: app:v2.1.0 lifecycle: preStop: exec: command: ["/bin/sh", "-c", "sleep 5"]
preStop içindeki bekleme, ingress ve load balancer yönlendirme tablolarının güncellenmesi sırasında gelebilecek gecikmeli isteklerin karşılanmasını garanti altına alır.
Bu yazıyı faydalı bulduysanız beğenebilir veya sosyal medyada paylaşabilirsiniz.