Я пытаюсь выполнить последовательное обновление своего набора с состоянием, установив updateStrategy
в спецификации STS, но похоже, что при удалении модуля с состоянием он завершается и появляется новый модуль. Итак, вопрос в том, что я хочу, чтобы мой существующий модуль работал по команде удаления от клиента, и как только новый модуль будет запущен и заработает, мой старый должен быть прекращен. Как я могу добиться этого с помощью statefulset? Возможно ли это с помощью набора состояний, как мы делаем чередование обновлений в ресурсе развертывания?
Невозможно update statefulset like rolling updates in a deployments
, как указано в документе :
Если для параметра .spec.updateStrategy.type StatefulSet установлено значение RollingUpdate, контроллер StatefulSet удалит и заново создаст каждый модуль в StatefulSet. Это будет происходить в том же порядке, что и завершение работы модуля (от наибольшего порядкового номера к наименьшему), обновляя каждый модуль по одному.
Итак, вы можете использовать bluegreen deployment
или OnDelete update strategy
. Это позволяет вам вручную удалять модули, чтобы активировать StatefulSet controller
для создания новых модулей с обновленным шаблоном.
Вот блог Аджая, в котором об этом рассказывается в подробной версии.
Стратегия Rollupdate в спецификации StatefulSet обеспечит минимальное время простоя, тогда как при развертывании его можно свести к нулю.
Спасибо, но если невозможно обновлять поочередно, тогда интересно, почему у нас есть стратегия непрерывного обновления в спецификации statefulset?