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

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

1
Peter Hiross 3 Апр 2020 в 16:48

1 ответ

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

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

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

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

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

2
Arghya Sadhu 3 Апр 2020 в 17:18
«Если узел находится в хорошем состоянии и по какой-то причине происходит сбой модуля, он будет перезапущен на том же узле без необходимости использования контроллера». Что произойдет, если контейнер внутри пода выйдет из строя? Будет ли этот контейнер перезапущен без контроллера?
 – 
Peter Hiross
3 Апр 2020 в 23:48
Да, он будет перезапущен на том же узле кублетом этого узла.
 – 
Arghya Sadhu
4 Апр 2020 в 04:59