Всегда ли POD Kubernetes с политикой перезапуска должен работать под управлением контроллера? - PullRequest
0 голосов
/ 03 апреля 2020

Если я создаю манифест POD (pod-definition.yaml) и задаю restartPolicy: Always, этот Pod также должен быть связан с каким-либо контроллером (т. Е. Replicaset или Deployment)? Конечная цель здесь состоит в том, чтобы автоматически запустить контейнер в контейнере, если он d ie. Если контейнер не связан с контроллером, будет ли этот контейнер автоматически перезапущен? Что произойдет, если у Pod есть только один контейнер?

Документация здесь не ясна, но это наводит меня на мысль, что Pod должен находиться под контроллером, чтобы это работало, т.е. если вы неявно создаете объект 8Ks и задаете политику перезапуска Never получить стручок Если вы укажете всегда (по умолчанию), вы получите развертывание.

1 Ответ

1 голос
/ 03 апреля 2020

Модуль без контроллера (развертывание, контроллер репликации и т. Д. c) и только с restartPolicy не будет перезапущен / переназначен, если узел (а точнее, кублет на этом узле), на котором работает, умирает, истощается или перезагружается или по какой-то другой причине модуль удаляется из узла. Если узел находится в хорошем состоянии и по какой-то причине происходит сбой модуля pod, он будет перезапущен на том же узле без контроллера.

Причина в том, что pod restartPolicy обрабатывается kubelet, т.е. pod перезапускается kubelet из the node.Now, если умирает узел, kubelet также не работает и не может перезапустить модуль. Следовательно, вам нужен контроллер, который перезапустит его в другом узле.

Из документов

restartPolicy относится только к перезапускам контейнеров с помощью кублета на том же узле

Короче говоря, если вы хотите, чтобы стручки пережили сбой узла или сбой кублета узла, у вас должен быть контроллер более высокого уровня.

...