consdata.com
Blog techniczny Blog biznesowy Dział HR
EN
liveness probe

Czy wiesz co to healthcheck i jak z niego korzystać?

author Krzysztof Czarnecki
11 października 2022

Health check pozwala na monitorowanie działania aplikacji. Mechanizm ten w Kubernetesie pozwala sprawdzić nie tylko, czy kontener działa (czy node port jest dostępny), ale także czy aplikacja wciąż działa (czy odpowiada). W tym wpisie poruszany jest temat mechanizmu Liveness Probe.

Liveness Probe

Służy do identyfikacji, czy aplikacja uruchomiona na kontenerze jest sprawna. W przypadku identyfikacji braku działania aplikacji kontener zostaje automatycznie zrestartowany. Detekcja działania aplikacji sprowadza się do cyklicznego wysłania zapytań HTTP na wcześniej zdefiniowany endpoint wystawiony w aplikacji lub wywoływania komendy w kontenerze.

Fragment pliku .yaml z konfiguracją Liveness Probe’a opartą na zapytaniach HTTP:

spec:
  containers:
    livenessProbe:
      httpGet:
        (...)
        path: /health-check # ścieżka do health-checka
        port: 8080 # port na którym wystawiony jest kontener
      initialDelaySeconds: 3 # po ilu sekundach od uruchomienia kontenera włączyć health-checka 
      periodSeconds: 3 # co ile serwować zapytanie do /health-check

Przykład interaktywny:

Poniżej przedstawiono polecenia, dzięki którym można samodzielnie zobaczyć, jak działa Liveness Probe. Zamieszczony przykład zawiera definicję Poda, który po 30 sekundach od uruchomienia przestaje odpowiadać na health-checka. W tym przypadku zdecydowano się na definicję health-checka przy użyciu wywołania komendy w kontenerze.

Uruchomienie kontenera:

kubectl apply -f https://k8s.io/examples/pods/probe/exec-liveness.yaml

Przy użyciu poniższego polecenia możliwe jest śledzenie stanu poda. Należy zauważyć, że po czasie 30 sekund od uruchomienia, pod zostaje zrestartowany, dlatego, że usunięty zostaje plik, który odpowiada za poprawne zwracanie odpowiedzi dla health-checka:

watch -n 1 kubectl get pods

Aby prześledzić historię zdarzeń (restartu) wykonajmy polecenie:

kubectl describe pod liveness-exec

Jeśli nastąpił przynajmniej jeden restart, polecenie zwraca informację o przyczynie restartu:

(...)
Normal   Pulled     78s                kubelet            Successfully pulled image "k8s.gcr.io/busybox" in 990.617406ms
Warning  Unhealthy  35s (x3 over 45s)  kubelet            Liveness probe failed: cat: can't open '/tmp/healthy': No such file or directory
Normal   Killing    35s                kubelet            Container liveness failed liveness probe, will be restarted
Normal   Pulling    5s (x2 over 79s)   kubelet            Pulling image "k8s.gcr.io/busybox"
(...)

Źródła:

  • https://github.com/wardviaene/kubernetes-course
  • https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/
  • https://www.educba.com/kubernetes-liveness-probe
Najnowsze wpisy

  • Czy wiesz, że w Angularze istnieje sygnałowa alternatywa @ViewChild?
  • Czy wiesz, jak wykonać profilowanie aplikacji za pomocą JDK Flight Recorder?
  • Czy wiesz, jak analizować i optymalizować zależności w bundle?
Dołącz do nas

  • SENIOR FULLSTACK DEVELOPER (JAVA + ANGULAR) Poznań (hybrydowo) lub zdalnie UoP 14 900 - 20 590 PLN brutto
    B2B 19 680 - 27 220 PLN netto
  • REGULAR FULLSTACK DEVELOPER (JAVA + ANGULAR) Poznań (hybrydowo) lub zdalnie UoP 11 300 - 15 900 PLN brutto
    B2B 14 950 - 21 000 PLN netto
  • ZOBACZ WSZYSTKIE OGŁOSZENIA

Podobne wpisy

post-image
angular

Czy wiesz, że w Angularze istnieje sygnałowa alternatywa @ViewChild?

Pokażę sygnałową alternatywę dla @ViewChild w Angularze i jej zalety względem klasycznego podejścia z AfterViewInit.

author
Mariusz Bartosik 4 sie 2026
post-image
jdk-flight-recorder

Czy wiesz, jak wykonać profilowanie aplikacji za pomocą JDK Flight Recorder?

Podczas przeprowadzania testów wydajnościowych czasami napotykamy sytuację, w której ich wyniki nie są zadowalające. Pojawia się wtedy pytanie, jak sprawdzić, co dzieje się wewnątrz aplikacji i na co zużywa ona...

author
Jakub Wilczewski 24 lip 2026
post-image
CommonJS

Czy wiesz, jak analizować i optymalizować zależności w bundle?

Pokażę, jak analizować plik stats.json i skutecznie zmniejszać rozmiar bundle'a w Angularze poprzez optymalizację importów CommonJS oraz wykorzystanie ESM (lodash-es).

author
Aleksander Burzec 16 cze 2026
Dołącz do nas

  • SENIOR FULLSTACK DEVELOPER (JAVA + ANGULAR) Poznań (hybrydowo) lub zdalnie UoP 14 900 - 20 590 PLN brutto
    B2B 19 680 - 27 220 PLN netto
  • REGULAR FULLSTACK DEVELOPER (JAVA + ANGULAR) Poznań (hybrydowo) lub zdalnie UoP 11 300 - 15 900 PLN brutto
    B2B 14 950 - 21 000 PLN netto
  • ZOBACZ WSZYSTKIE OGŁOSZENIA
consdata.com
  • Kontakt

    • sales@consdata.com
    • +48 61 41 51 000

  • Biuro

    • K9Office
      Krysiewicza 9/14
      61-825 Poznań
      Polska

  • Rozwiązania

    • Eximee
    • Kouncil
  • Blog Dołącz do nas
Copyright © 2024 Consdata. All rights reserved. Privacy Policy & Cookies
Chcemy używać plików cookie oraz skryptów podmiotów trzecich do polepszania funkcjonowania tej strony Zgadzam się