Сохраняет ли повторное развертывание Kubernetes Statefulset утверждение постоянного тома?

У нас есть набор состояний kubernetes с заявкой на постоянный том для класса хранилища zookeeper.

Имеется 6 постоянных томов хранилища класса "zookeeper".

Развертывание выполняется с помощью диаграммы Helm. Когда я впервые устанавливаю диаграмму управления с 3-мя репликами, набор состояний использует, скажем, Pv1, Pv2 и Pv3. Все работает нормально.

Удалить очистить штурвал.

Переустановите ту же диаграмму Helm с тем же количеством реплик. 3. На этот раз набор состояний выберет те же постоянные тома, Pv1, Pv2 и Pv3, или он выберет любые случайные Pv из 6 Pv. Это важно, потому что при разных развертываниях, если постоянный том изменяется, zookeeper «myid» не работает.


comment
Ваш StatefulSet подает претензию или вы делаете это отдельно?   -  person suren    schedule 13.02.2020


Ответы (1)


StatefulSet предоставляет ключ с именем volumeClaimTemplates, используя его, вы можете динамически запрашивать PVC из класса хранилища. volumeClaimTemplates будет обеспечивать стабильное хранилище с использованием PersistentVolumes, предоставленных PersistentVolume Provisioner.

volumeClaimTemplates:
- metadata:
    name: my-pv
  spec:
    accessModes: 
      - ReadWriteMany
    resources:
      requests:
        storage: 1Gi

Если у вас несколько реплик, вы увидите, что модули создаются последовательно один за другим, а PVC запрашивается во время создания модуля. Именование PVC представляет собой комбинацию volumeClaimTemplate name + pod-name + order number.

Например, у нас будет следующее именование PVC

my-pv-app-0
my-pv-app-1
.. and so on

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

person DT.    schedule 13.02.2020