Проверка работоспособности livenessProbe Kubernetes

Автор Itworkroom

Kubernetes может проверить текущую работоспособность контейнера посредством проверок работоспособности (livenessProbe). Kubernetes будет периодически выполнять проверку и перезапускать контейнер в случае неуспешной проверки.

Kubernetes может исследовать контейнер с помощью одного из трех механизмов:

  1. Запрос HTTP GET на IP-адрес, порт и путь контейнера, которые вы укажете. Если код отклика HTTP будет 2xx или 3xx, проверка считается успешной. Если сервер возвращает отклик с кодом ошибки или вообще не отвечает, то проверка считается неуспешной, и в результате контейнер будет перезапущен;

Добавление проверки работоспособности в модуль: kubia-liveness-probe.yaml

apiVersion: v1
kind: pod
metadata:
name: kubia-liveness
spec:
containers:
   – image: vasya/kubia-unhealthy
      name: kubia
      livenessProbe:
        httpGet:
         path: /
         port: 8080
       initialDelaySeconds: 15

Следить за проверками можно командой: $ kubectl get po kubia-liveness, в столбце RESTARTS будет отображаться количество перезапусков.

Команда $ kubectl logs будет показывать отчет в текущем контейнере.

Посмотреть логи предыдущего контейнера который прекратил работу

$ kubectl logs mypod –previous

Чтобы увидеть почему контейнер нужно было перезапустить

$ kubectl describe po kubia-liveness

В случае модулей, работающих в рабочем окружении, необходимо всегда назначать проверку доступности, без нее Kubernetes не имеет никакого способа узнать, живое ваше приложение или нет.

  1. Проверка сокета TCP пытается открыть TCP-подключение к указанному порту контейнера. Если подключение установлено успешно, то проверка сработала. В противном случае контейнер перезапускается;
  1. Проверка Exec выполняет произвольную команду внутри контейнера и проверяет код состояния на выходе из команды. Если код состояния равен 0, то проверка выполнена успешно. Все остальные коды считаются несработавшими.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *