Sobes.tech
Middle

Kubernetes-də liveness-testindən keçməzsə, nə baş verir?

sobes.tech Süni İntellekt

AI-dan cavab

Əgər pod liveness-testindən keçməzsə, Kubernetes manifestdə göstərilən əməliyyatı həyata keçirəcək. Əsasən, bu konteynerin yenidən başlatılmasıdır.

Liveness-testində uğursuzluq halında mümkün olan əməliyyatlar:

  • Yenidən başlat: Pod daxilində konteyneri yenidən başlat. Bu, standart əməliyyatdır.
  • Heç bir şey etmə: Kubernetes liveness-testində uğursuz olarsa, heç bir əməliyyat həyata keçirməz. Konteyner hazırkı vəziyyətdə qalacaq (Running və ya Crashing).
  • Əmr icra et: Konteyner daxilində müəyyən bir əmri icra et. Əgər əmrin çıxış kodu sıfırdan fərqli olarsa, liveness-test uğursuz sayılır.

Standart əməliyyat ilə (Yenidən başlatma) scenariyo:

  1. kubelet nodda müntəzəm olaraq liveness-test vasitəsilə konteyneri yoxlayır.
  2. Liveness-test şərti yerinə yetirilmir (məsələn, HTTP server cavab vermir, əmrin sonunda səhv olur).
  3. kubelet test uğursuzluğunu qeyd edir.
  4. Bir neçə uğursuz cəhd (parametrlər failureThreshold, initialDelaySeconds, periodSeconds, timeoutSeconds ilə tənzimlənir) sonrası kubelet konteynerin zədələndiyini müəyyən edir.
  5. kubelet zədələnmiş konteynerə SIGKILL siqnalı göndərir.
  6. Konteyner dayandırılır.
  7. kubelet həmin podda konteyneri yenidən başlatır.
  8. Liveness-test prosesi yenidən başlayır.

Liveness-test ilə readiness-test arasındakı fərqi ayırmaq vacibdir. Readiness-test konteynerin trafik qəbul etməyə hazır olub-olmadığını müəyyən edir. Readiness-test uğursuz olarsa, Service bu pod nümunəsinə trafik yönəltmir, amma konteyner yenidən başlatılmır. Liveness-test uğursuzluğu isə nasazlığı göstərir və yenidən başlatma tələb edir.

# spec.containers içində livenessProbe nümunəsi
containers:
  - name: my-container
    image: my-image:latest
    livenessProbe:
      httpGet:
        path: /healthz
        port: 8080
      initialDelaySeconds: 15 # İlk yoxlamadan əvvəl gecikmə
      periodSeconds: 20      # Yoxlamalar arasındakı interval
      timeoutSeconds: 5       # Cavab üçün gözləmə müddəti
      failureThreshold: 3     # Yenidən başlatmadan əvvəl uğursuz cəhdlərin sayı