Middle+
Pod'un önceliğine bağlı olarak düğümün doğru şekilde tamamlanması hangi faktörlerle sağlanır?
sobes.tech yapay zeka
AI'dan gelen yanıt
Bir düğümün düzgün kapanması aşağıdaki faktörler tarafından sağlanır:
- Zaman Aşımı Süreleri:
terminationGracePeriodSeconds: Düğümün, podları zorla yok etmeden önce düzgün şekilde sonlandırmaya çalışacağı süreyi belirler. Varsayılan 30 saniyedir.pod.spec.terminationGracePeriodSeconds: Belirli bir pod için zaman aşımı süresini geçersiz kılabilir.
# Uzatılmış kapanış zaman aşımı ile bir pod manifest örneği apiVersion: v1 kind: Pod metadata: name: my-pod-with-grace-period spec: containers: - name: my-container image: my-image terminationGracePeriodSeconds: 60 # Uzatılmış zaman aşımı - Sinyaller:
- Kubernetes, podun konteynerlerine
SIGTERMsinyali gönderir. - Konteynerdeki uygulama,
SIGTERMsinyalini yakalamalı ve düzgün şekilde işlemesi gerekir (örneğin, mevcut bağlantıları kapatmak, durumu kaydetmek). - Uygulama
SIGTERMileterminationGracePeriodSecondssüresi içinde sona ermezse,SIGKILLsinyali gönderilir.
- Kubernetes, podun konteynerlerine
- Pod Önceliği (
priorityClassName):- Kaynak kıtlığı veya düğümün tahliyesi durumunda, daha düşük öncelikli podlar önce sona erer.
- Bu, kritik (yüksek öncelikli) podların daha uzun süre çalışmasını ve düğüm erişilemez hale gelirse düzgün şekilde kapanma şansını artırır.
# Öncelik sınıfı belirten bir pod manifest örneği apiVersion: v1 kind: Pod metadata: name: my-priority-pod spec: containers: - name: my-container image: my-image priorityClassName: high-priority # Öncelik sınıfının kullanımı - PreStop Hook'ları:
SIGTERMsinyali gönderilmeden hemen önce konteynerde çalışan ek betikler veya çağrılar.- Senkronizasyon, hizmetlerden çıkış veya düzgün kapanış için gerekli diğer görevleri yapmak üzere kullanılabilir.
# PreStop hook örneği apiVersion: v1 kind: Pod metadata: name: my-pod-with-prestop spec: containers: - name: my-container image: my-image lifecycle: preStop: exec: command: ["/bin/sh", "-c", "echo 'Stopping container...' && sleep 5 && exit 0"] # Örnek komut - Uç Noktaların Yönetimi (Endpoints):
- Kubernetes, kapanış başlatıldığında, yeni trafiğin sona eren pod'a yönlendirilmemesi için podun IP'sini Endpoints Service nesnesinden kaldırır.
- Bu, mevcut bağlantıların grace period süresi içinde sona ermesine olanak tanır.
Bu mekanizmaların tümü, Kubernetes'in düğümdeki podların kapanış sürecini yönetmesine, önceliklerini dikkate almasına, düzgün kapanma şansı vermesine ve mümkün olduğunca zorunlu yok etmeyi önlemesine olanak tanır.