Я использую Google Container Engine для запуска StatefulSet для набора реплик MongoDB (3 модуля реплик).
Это отлично работает с динамическим предоставлением постоянного хранилища - то есть новое хранилище предоставляется для каждого модуля при создании набора с отслеживанием состояния.
Но если я перезапущу StatefulSet, мне кажется, что я не смогу повторно привязать старые постоянные тома, потому что новое хранилище будет предоставлено снова. Это означает, что данные потеряны. В идеале постоянное хранилище должно пережить удаление самого кластера Kubernetes, с сохранением данных и готовностью к повторному использованию в новом кластере.
Есть ли способ создать постоянные диски GCE и использовать их в заявке на постоянный том StatefulSet?
[Обновлено 20 сентября 2017 г.]
Нашел ответ: это решение (кредит @RahulKrishnan R A)
создать класс хранилища, указав базовый тип диска и зону
Создайте PersistentVolume, который указывает созданный выше класс хранилища, и укажите постоянный диск, который вы хотите смонтировать.
- Создайте PersistentVolumeClaim. Важно назвать PVC
<pvc template name>-<statefulset name>-<ordinal number>
. (Уловка правильное имя!) Укажите volumeName как PV, созданный выше, и класс хранилища. - Создайте столько PV и PVC, сколько у вас есть реплик с правильным именем.
- Создайте statefulSet с шаблоном PVC.