Liveness Probe Command Exec to element w Kubernetesie, dzięki któremu możesz kontrolować stan życia licznika w Podach za pomocą poleceń wewnątrz kontenerów. Opcja ta pozwala nam sprawdzić np. zawartość plików, istnienie plików oraz inne opcje (dostępne z poziomu poleceń), które mogą dać nam informację o poprawnej pracy naszego kontenera.
W tym artykule pokażę przykład użycia Kubernetes Liveness Probe Command Exec i dostępnych opcji.
Liveness Probe ponownie uruchamia kontener, gdy polecenie zwróci kod błędu. Ta funkcja ma również kilka przydatnych ustawień, takich jak:
opcje wykonawcze:
# YAML example # liveness-pod-example.yaml # apiVersion: v1 kind: Pod metadata: name: liveness-command-exec spec: containers: - name: liveness image: nginx ports: - containerPort: 80 livenessProbe: exec: command: - cat - /usr/share/nginx/html/index.html initialDelaySeconds: 2 #Default 0 periodSeconds: 2 #Default 10 timeoutSeconds: 1 #Default 1 successThreshold: 1 #Default 1 failureThreshold: 3 #Default 3
Utwórz kapsułę:
kubectl create -f liveness-pod-example.yaml
Opisz kapsułę:
kubectl describe pod liveness-command-exec
Restart Count: 0 . . . Events: Type Reason Age From Message ---- ------ ---- ---- ------- Normal Scheduled <unknown> default-scheduler Successfully assigned jenkins/liveness-command-exec to dcpoz-d-sou-k8swor2 Normal Pulling 100s kubelet, dcpoz-d-sou-k8swor2 Pulling image "nginx" Normal Pulled 97s kubelet, dcpoz-d-sou-k8swor2 Successfully pulled image "nginx" Normal Created 97s kubelet, dcpoz-d-sou-k8swor2 Created container liveness Normal Started 97s kubelet, dcpoz-d-sou-k8swor2 Started container liveness Warning Unhealthy 2s (x2 over 4s) kubelet, dcpoz-d-sou-k8swor2 Liveness probe failed: cat: /usr/share/nginx/html/index.html: No such file or directory
Pod działa świetnie, nie ma żadnych problemów.
Aby sprawdzić czy sonda działa, usuń plik Index.html z poda „liveness-command-exec”.
kubectl exec -it liveness-command-exec -- rm /usr/share/nginx/html/index.html
kubectl describe pod liveness-command-exec
Restart Count: 1
.
.
.
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Normal Scheduled <unknown> default-scheduler Successfully assigned jenkins/liveness-command-exec to dcpoz-d-sou-k8swor2
Warning Unhealthy 5s (x3 over 9s) kubelet, dcpoz-d-sou-k8swor2 Liveness probe failed: cat: /usr/share/nginx/html/index.html: No such file or directory
Normal Killing 5s kubelet, dcpoz-d-sou-k8swor2 Container liveness failed liveness probe, will be restarted
Normal Pulling 4s (x2 over 105s) kubelet, dcpoz-d-sou-k8swor2 Pulling image "nginx"
Normal Pulled 2s (x2 over 102s) kubelet, dcpoz-d-sou-k8swor2 Successfully pulled image "nginx"
Normal Created 2s (x2 over 102s) kubelet, dcpoz-d-sou-k8swor2 Created container liveness
Normal Started 2s (x2 over 102s) kubelet, dcpoz-d-sou-k8swor2 Started container liveness
Ciekawi Cię, co jeszcze możesz przetestować za pomocą sond Kubernetes? Sprawdź tę konfigurację HTTPRequest.