В Кубернетесе, как дождаться удаления пакета до конца sh перед запуском нового - PullRequest
0 голосов
/ 26 апреля 2020

У меня есть развертывание, где мне нужен только один экземпляр за раз. При изящном закрытии модуля сразу запускается другой, не дожидаясь, пока модуль завершит работу sh. Как я могу убедиться, что изящно удаленный модуль полностью исчез до запуска нового модуля?

Что я пробовал: 1. Обновление с использованием maxSurge: 0 и maxUnavailable: 1

  strategy:
    rollingUpdate:
      maxSurge: 0
      maxUnavailable: 1
    type: RollingUpdate

Результат: при изящном удалении модуля сразу запускается другой экземпляр, поэтому одновременно работают два модуля, по-видимому, игнорируя значение maxSurge.

То же, что и 1, за исключением использования процентов вместо целых чисел

Использование восстановления вместо обновления по очереди

strategy:
    type: Recreate

Результат : то же, что 1

Есть ли способ получить желаемое поведение напрямую в Kubernetes, или вам нужно сделать что-то вроде добавления контейнера инициализации с задержкой, например, c.?

Ответы [ 2 ]

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

Использование StatefulSets

StatefulSets are valuable for applications that require one or more of the following.

 - Stable, unique network identifiers. 
 - Stable, persistent storage.
 - Ordered, graceful deployment and scaling. 
 - Ordered, automated rolling updates.
0 голосов
/ 26 апреля 2020

При изящном удалении модуля сразу запускается другой экземпляр.

Повторное развертывание ожидает завершения старой версии только при обновлении развертывания. За исключением обновления развертывания, оно не может обеспечить согласованность.

Ссылка: https://github.com/kubernetes/kubernetes/issues/27362#issuecomment -524664492

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...