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.