Проверка работоспособности livenessProbe Kubernetes
Kubernetes может проверить текущую работоспособность контейнера посредством проверок работоспособности (livenessProbe). Kubernetes будет периодически выполнять проверку и перезапускать контейнер в случае неуспешной проверки.
Kubernetes может исследовать контейнер с помощью одного из трех механизмов:
- Запрос 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 не имеет никакого способа узнать, живое ваше приложение или нет.
- Проверка сокета TCP пытается открыть TCP-подключение к указанному порту контейнера. Если подключение установлено успешно, то проверка сработала. В противном случае контейнер перезапускается;
- Проверка Exec выполняет произвольную команду внутри контейнера и проверяет код состояния на выходе из команды. Если код состояния равен 0, то проверка выполнена успешно. Все остальные коды считаются несработавшими.
0