Kubernetes'te liveness, readiness ve startup probe arasındaki fark nedir? Yanlış yapılandırılırsa ne olur?

Cevap

ProbeSorduğu soruBaşarısız olursa
LivenessProcess kilitlendi mi, kurtarılamaz durumda mı?Container yeniden başlatılır
ReadinessŞu an trafik almaya hazır mı?Pod Service endpoint'lerinden çıkarılır, öldürülmez
StartupUygulama açılışını tamamladı mı?Tamamlanana kadar diğer probe'lar çalışmaz; süre aşılırsa restart
startupProbe:
  httpGet: { path: /health/live, port: 8080 }
  failureThreshold: 30
  periodSeconds: 2          # en fazla 60 sn açılış süresi
livenessProbe:
  httpGet: { path: /health/live, port: 8080 }
  periodSeconds: 10
  failureThreshold: 3
readinessProbe:
  httpGet: { path: /health/ready, port: 8080 }
  periodSeconds: 5
  failureThreshold: 2

Endpoint'ler ne kontrol etmeli?

  • Liveness: yalnızca process'in kendisi yanıt veriyor mu. Dış bağımlılıkları kontrol etmemeli.
  • Readiness: trafik işleyebilmek için gerekenler: DB bağlantısı, cache ısınması, graceful shutdown başladı mı.

Yanlış yapılandırma örnekleri

  • Liveness içinde DB kontrolü: DB birkaç saniye yavaşlar, tüm pod'lar aynı anda liveness'tan düşer ve yeniden başlar. Bu da açılışta DB'ye bağlantı fırtınası yaratır: cascading failure.
  • Startup probe olmadan yavaş açılan uygulama (ör. büyük Spring Boot servisi): liveness açılışı bitmeden başarısız olur, pod sonsuz CrashLoopBackOff'a girer.
  • Readiness olmadan deploy: rolling update sırasında henüz hazır olmayan pod'a trafik gider, kullanıcılar 502/503 görür.
  • Çok agresif timeout (timeoutSeconds: 1) GC pause veya yük altındaki pod'ları gereksiz yere öldürür.

Spring Boot Actuator /actuator/health/liveness ve /actuator/health/readiness, ASP.NET Core MapHealthChecks ile tag bazlı ayrım sunar.

  1. Distributed tracing nasıl çalışır? Trace context servisler arasında nasıl taşınır ve OpenTelemetry'nin rolü nedir?ZorDocker & DevOpsBackend
  2. Observability nedir? Log, metric ve trace arasındaki fark nedir ve her biri ne için kullanılır?KolayDocker & DevOpsBackend
  3. Rolling update, blue-green ve canary deployment stratejileri arasındaki farklar nelerdir?OrtaDocker & DevOpsBackend
  4. Ortam değişkenleri ve secret'lar (şifre, API anahtarı) güvenli şekilde nasıl yönetilir?OrtaDocker & DevOpsBackend
  5. CI/CD nedir? Tipik bir backend CI/CD pipeline'ının aşamaları nelerdir?OrtaDocker & DevOpsBackend
  6. İyi bir Dockerfile nasıl yazılır? Multi-stage build ne işe yarar?OrtaDocker & DevOpsBackend

Bu konuda başka bir soru biliyor musun?

Mülakatta karşılaştığın soruları ekle, onaylandıktan sonra yayına alınsın.

Soru ekle