Согласно документации :
Модуль работает и имеет два контейнера.Контейнер 1 завершается с ошибкой.
Журнал событий отказа.
Если restartPolicy равен:
- Всегда : перезапустить контейнер;Под фаза остается Бег .
- OnFailure : перезапустить контейнер;Фаза фазы остается Работает .
- Никогда : Не перезапускать контейнер;Фаза фазы остается Работает .
Если Контейнер 1 не запущен, и Контейнер 2 выходит:
Записать событие сбоя.
Если restartPolicyis:
- Always : перезапустить контейнер;Под фаза остается Работает .
- OnFailure : перезапустить контейнер;Фаза фазы остается Работает .
- Никогда : Фаза фазы становится Сбой .
Как обходной путь(частичное решение этой проблемы) с restartPolicy: Никогда - вы можете применить результат проверки живучести из основного контейнера в контейнер с коляской (с использованием exec, http или tcp probe).
Это не хорошее решениепри работе с микросервисами.
пример:
apiVersion: v1
kind: Pod
metadata:
labels:
test: liveness
name: liveness-exec
spec:
containers:
- name: liveness1
image: k8s.gcr.io/busybox
args:
- /bin/sh
- -c
- touch /test-pd/healthy; sleep 30; rm -rf /test-pd/healthy; sleep 30
livenessProbe:
exec:
command:
- cat
- /test-pd/healthy
initialDelaySeconds: 5
periodSeconds: 5
volumeMounts:
- mountPath: /test-pd
name: test-volume
- name: liveness2
image: k8s.gcr.io/busybox
args:
- /bin/sh
- -c
- sleep 120
livenessProbe:
exec:
command:
- cat
- /test-pd2/healthy
initialDelaySeconds: 5
periodSeconds: 5
volumeMounts:
- mountPath: /test-pd2
name: test-volume
restartPolicy: Never
volumes:
- name: test-volume
hostPath:
# directory location on host
path: /data
type: Directory
Пожалуйста, дайте мне знать, если это помогло.