Liveness Probe HTTPRequest to element w Kubernetesie, dzięki któremu możesz kontrolować stan życia licznika w Podach za pomocą protokołu HTTP. Komponent umożliwia wysyłanie zapytań do danego punktu końcowego w kontenerze i wnioskowanie, czy aplikacja działa poprawnie.
W tym artykule wymienię kilka typowych ustawień Kubernetes Liveness Probe i opcji httpGet. Następnie pokażę działający przykład prawidłowego skonfigurowania Liveness Probe w kodzie.
Liveness Probe ponownie uruchamia kontener, gdy dany punkt końcowy zwróci stan wyższy niż 399. Ta funkcja ma również kilka przydatnych ustawień, takich jak:
Opcje httpGet:
# YAML example # liveness-pod-example.yaml # apiVersion: v1 kind: Pod metadata: name: liveness-request spec: containers: - name: liveness image: nginx ports: - containerPort: 80 livenessProbe: httpGet: path: / port: 80 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-request
Restart Count: 0 . . . Events: Type Reason Age From Message ---- ------ ---- ---- ------- Normal Scheduled <unknown> default-scheduler Successfully assigned example-dc/liveness-request to dcpoz-d-sou-k8swor3 Normal Pulling 4m45s kubelet, dcpoz-d-sou-k8swor3 Pulling image "nginx" Normal Pulled 4m42s kubelet, dcpoz-d-sou-k8swor3 Successfully pulled image "nginx" Normal Created 4m42s kubelet, dcpoz-d-sou-k8swor3 Created container liveness Normal Started 4m42s kubelet, dcpoz-d-sou-k8swor3 Started container liveness
Pod działa świetnie, nie ma żadnych problemów.
Aby sprawdzić czy sonda na żywo działa, usuń plik Index.html z poda „liveness-request”.
kubectl exec -it liveness-request -- rm /usr/share/nginx/html/index.html
kubectl describe pod liveness-request
Restart Count: 1 . . . Events: Type Reason Age From Message ---- ------ ---- ---- ------- Normal Scheduled <unknown> default-scheduler Successfully assigned example-dc/liveness-request to dcpoz-d-sou-k8swor3 Normal Pulling 9s (x2 over 11m) kubelet, dcpoz-d-sou-k8swor3 Pulling image "nginx" Warning Unhealthy 9s (x3 over 13s) kubelet, dcpoz-d-sou-k8swor3 Liveness probe failed: HTTP probe failed with statuscode: 403 Normal Killing 9s kubelet, dcpoz-d-sou-k8swor3 Container liveness failed liveness probe, will be restarted Normal Pulled 7s (x2 over 11m) kubelet, dcpoz-d-sou-k8swor3 Successfully pulled image "nginx" Normal Created 7s (x2 over 11m) kubelet, dcpoz-d-sou-k8swor3 Created container liveness Normal Started 7s (x2 over 11m) kubelet, dcpoz-d-sou-k8swor3 Started container liveness