Sobes.tech
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.