Middle
Kubernetes'te testler ne için kullanılır?
sobes.tech yapay zeka
AI'dan gelen yanıt
Kubernetes'te probelar, konteynerlerin durumunu belirlemek ve podların yaşam döngüsünü yönetmek için kullanılır. Bunlar, kümenin uygulamaların durumundaki değişikliklere otomatik olarak tepki vermesini sağlar ve erişilebilirlik ile kararlılığı güvence altına alır.
Üç ana prob türü vardır:
- Liveness probu: Uygulamanın konteyner içinde çalışıp çalışmadığını belirler. Eğer liveness probu başarısız olursa, Kubernetes konteyneri yeniden başlatır.
- Readiness probu: Konteynerin trafik almaya hazır olup olmadığını belirler. Eğer readiness probu başarısız olursa, Kubernetes geçici olarak podu, ona trafik gönderen servisin kullanılabilir uç noktaları listesinden çıkarır.
- Startup probu: Uygulamanın konteynerde başlatılıp başlatılmadığını belirler. Uzun zaman alan başlatma gerektiren uygulamalar için kullanılabilir. Startup probu başarılı olursa, sonraki kontroller (liveness/readiness) zaman çizelgesine göre başlar. Eğer belirli süre içinde başarısız olursa, Kubernetes konteyneri öldürür ve yeniden başlatır.
Probular farklı şekillerde uygulanabilir:
- ExecAction: Konteyner içinde bir komut çalıştırır. Başarı, dönüş koduna göre belirlenir (0 - başarı, diğerleri - hata).
# Liveness probu için ExecAction örneği livenessProbe: exec: command: - cat - /tmp/healthy initialDelaySeconds: 5 periodSeconds: 5 - HTTPGetAction: Belirtilen port ve yoldaki HTTP GET isteği gönderir. Başarı, HTTP durum koduna göre belirlenir (genellikle 2xx veya 3xx).
# Readiness probu için HTTPGetAction örneği readinessProbe: httpGet: path: /ready port: 8080 initialDelaySeconds: 5 periodSeconds: 5 failureThreshold: 3 - TCPSocketAction: Belirtilen portta TCP bağlantısı kurmaya çalışır. Başarı, başarılı bağlantıya göre belirlenir.
# Liveness probu için TCPSocketAction örneği livenessProbe: tcpSocket: port: 8080 initialDelaySeconds: 15 periodSeconds: 20
Probuların doğru kullanımı, Kubernetes'teki uygulamaların güvenilirliği ve hata toleransı için kritik öneme sahiptir.