Сохраняет ли повторное развертывание kubernetes statefulset постоянное требование тома? - PullRequest
0 голосов
/ 13 февраля 2020

У нас есть набор состояний kubernetes с требованием постоянного тома для класса хранения "zookeeper"

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

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

Удалите очистку диаграммы управления.

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

1 Ответ

2 голосов
/ 13 февраля 2020

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

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

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

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

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

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

...