Блок воссоздания, управляемый StatefulSet с fre sh PersistentVolume - PullRequest
0 голосов
/ 26 марта 2020

Время от времени мне нужно выполнять замену всех модулей в моем StatefulSet так, чтобы все PV также создавались заново. Причиной этого является избавление от всех базовых жестких дисков, которые используют старые версии ключа шифрования. Эту операцию не следует путать с регулярными непрерывными обновлениями, для которых я все еще хочу, чтобы тома выжили после завершения Pod. Лучшая процедура, которую я решил сделать, заключается в следующем:

  1. Удалить PV.
  2. Удалить PV C.
  3. Удалить Pod.
  4. Дождитесь завершения всех удалений.
  5. Вручную заново создайте PV C, удаленный на шаге 2.
  6. Дождитесь, пока новый Pod завершит sh потоковую передачу данных из других модулей. в StatefulSet.
  7. Повторите с шага 1. для следующего Pod.

Я не доволен шагом 5. Я sh StatefulSet воссоздал PV C для меня, но, к сожалению, это не так. Я должен сделать это сам, в противном случае создание Pod завершается ошибкой:

Warning  FailedScheduling   3s (x15 over 15m)  default-scheduler   persistentvolumeclaim "foo-bar-0" not found

Есть ли лучший способ сделать это?

1 Ответ

1 голос
/ 26 марта 2020

Похоже, вы используете "Постоянный" том неправильно. Он предназначен для хранения данных между развертываниями, а не для их удаления. Есть и другие способы продлить ключи. Можно использовать k8s Secret и ConfigMap для установки ключа в Pod. Тогда вам просто нужно воссоздать Secret во время непрерывного обновления

...