Назад | Перейти на главную страницу

Удалить модули с сохранением состояния для обновления карты конфигурации - без удаления PV?

В K8s, если у меня развернут набор состояний с тремя репликами, как мне обновить карту конфигурации без потери данных на связанных постоянных томах? На это есть некоторые странные ограничения, в том числе -

  1. Все узлы должны иметь одинаковую конфигурацию (она относится к TLS и должна быть передана всем трем, прежде чем они смогут общаться друг с другом).
  2. Для того, чтобы приложение достигло кворума и сообщило о себе как о подключенном к сети через стандартные зонды, должно быть три реплики.
  3. Я не против нескольких минут простоя, пока это происходит.

Простой rollout restart терпит неудачу, потому что обновленная карта конфигурации делает один узел несовместимым с другими. Это предотвращает продолжение развертывания, потому что все необходимо перезапускать синхронно.

Принудительный перезапуск путем удаления модулей работает с точки зрения синхронного обновления конфигурации, но, похоже, удаляет постоянные тома (это тоже кажется странным, это стандартное поведение или что-то мое приложение делает за моей спиной?)

Оцените здесь несколько советов - как это делают профессионалы? Я чувствую, что, должно быть, неправильно понимаю проблему здесь.

Решение может быть переключением delete-claim флаг (при использовании persistent-claim). Это изменение влияет на поведение контроллера кластера при удалении ConfigMap и на необходимость удаления PVC. При обновлении ConfigMap просто установите delete-claim = false в определении PVC.

Взглянуть: configmap-update.