Могу ли я использовать существующий постоянный диск GCE в volumeClaimTemplate Kubernetes Statefulset


Я использую Google Container Engine для запуска StatefulSet для набора реплик MongoDB (3 модуля реплик).

Это прекрасно работает с динамической подготовкой постоянного хранилища - то есть новое хранилище подготавливается для каждого модуля при создании набора с сохранением состояния.

Но если я перезапущу StatefulSet, мне кажется, что я не смогу повторно привязать старые постоянные Тома, потому что новое хранилище будет подготовлено снова. Это означает, что данные будут потеряны. В идеале, постоянное хранение должно пережить удаление самого кластера Kubernetes с сохранением данных, готовых к повторному использованию в новом кластере.

Существует ли способ создать постоянные диски GCE и использовать их в требовании постоянного Тома StatefulSet?

[Обновлено 20 Сентября 2017 Года]

Нашел ответ: Это решение (кредит @RahulKrishnan R A)

  1. Создайте класс хранения, указав базовый тип диска и зону

  2. Создать а PersistentVolume, указывающий класс хранения create выше, и ссылайтесь на постоянный диск, который вы хотите смонтировать

  3. создайте PersistentVolumeClaim. Важно назвать ПВХ <pvc template name>-<statefulset name>-<ordinal number> . (Правильное название-the трюк!) Укажите volumeName как PV, созданный выше, и хранилище класс.
  4. создайте столько PV и ПВХ, сколько у вас есть реплик с помощью правильное название.
  5. создайте statefulSet с шаблоном PVC.
1 3

1 ответ:

Метод 1: Динамический

Вы можете добавить громкость утвержденияшаблона следующим образом в statefulset.файл yaml вместе с определением развертывания

VolumeClaimTemplates:
    - метаданные:
      название:хранение
      Примечания:
          volume.beta.kubernetes.io/storage-class: медленно
      спецификация:
         accessModes: ["ReadWriteOnce"]
         ресурсы:
            запросы:
            хранение: 10Gi

Создайте класс хранения storage.файл yaml

Вид: Класс Хранения
апиверсия: storage.k8s.io/v1beta1
метаданные:
   имя: slow
провизионер: kubernetes.io/gce-pd
параметры:
   тип: pd-standard
   зона: Азия-Восток 1-а

Метод 2 статический PV:

Https://github.com/rahulkrishnanfs/percona-xtradb-statefulset-cluster-k8s/blob/master/percona.yml

Примечание: persistentVolumeReclaimPolicy: Сохранить Используйте, если вы хотите сохранить объем

Постоянные Тома могут быть подготовлены администратором статически или динамически на основе ресурса StorageClass