Доступно с ограничениями в редакциях CSE Lite (1.73), CSE Pro (1.73)

Доступно без ограничений в редакциях:  EE

Стадия жизненного цикла модуля: General Availability
У модуля есть требования для установки

Модуль предоставляет CSI для управления томами c использованием СХД HPE. Модуль позволяет создавать StorageClass в Kubernetes через создание пользовательских ресурсов Kubernetes HPEStorageClass.

Внимание! Создание StorageClass для CSI-драйвера csi.hpe.com пользователем запрещено. Внимание! Поддерживаемые семейства СХД HPE (выбираются в HPEStorageConnection через spec.storageType):

  • Primera3Par — HPE 3PAR / Primera / Alletra 9000 / Alletra MP B10000 (block);
  • NimbleAlletra — HPE Nimble и HPE Alletra 5000/6000.

Для поддержки других СХД HPE, пожалуйста, свяжитесь с техподдержкой.

Доступные режимы доступа для модуля: RWO, RWX — только в DVP.

Системные требования и рекомендации

Требования

  • Наличие развернутой и настроенной СХД HPE.
  • Уникальные iqn в /etc/iscsi/initiatorname.iscsi на каждой из Kubernetes Nodes
  • Модуль snapshot-controller должен быть включен в кластере (требуется для функциональности снапшотов томов).

Быстрый старт

Все команды следует выполнять на машине, имеющей доступ к API Kubernetes с правами администратора.

Включение модуля

  • Включить модуль csi-hpe. Это приведет к тому, что на всех узлах кластера будет:
    • зарегистрирован CSI драйвер;
    • запущены служебные поды компонентов csi-hpe.
kubectl apply -f - <<EOF
apiVersion: deckhouse.io/v1alpha1
kind: ModuleConfig
metadata:
  name: csi-hpe
spec:
  enabled: true
  version: 1
EOF
  • Дождаться, когда модуль перейдет в состояние Ready.
kubectl get module csi-hpe -w

Создание StorageClass

Для создания StorageClass необходимо использовать ресурсы HPEStorageClass и HPEStorageConnection. Пример команд для создания таких ресурсов:

kubectl apply -f -<<EOF
apiVersion: storage.deckhouse.io/v1alpha1
kind: HPEStorageConnection
metadata:
  name: hpe
spec:
  # Выбор CSP (Container Storage Provider — компонент, через который
  # модуль ходит в СХД), к которому привязывается это подключение. Имя
  # сервиса и порт выводятся из этого значения автоматически и больше не
  # настраиваются вручную. Допустимые значения:
  #   - Primera3Par   — HPE 3PAR / Primera / Alletra 9000 / Alletra MP B10000 (блочный режим).
  #   - NimbleAlletra — HPE Nimble и HPE Alletra 5000/6000.
  storageType: Primera3Par
  controlPlane:
    backendAddress: "172.17.1.55" # mutable, адрес СХД
    username: "3paradm" # mutable, API username
    password: "3pardata" # mutable, API password
EOF
kubectl apply -f -<<EOF
apiVersion: storage.deckhouse.io/v1alpha1
kind: HPEStorageClass
metadata:
  name: hpe
spec:
  pool: "test-cpg"
  accessProtocol: "fc"    # required, immutable, одно из: iscsi, fc
  fsType: "xfs"           # required, mutable, одно из: xfs, ext4
  storageConnectionName: "hpe" # required, immutable, имя существующего HPEStorageConnection
  reclaimPolicy: Delete   # required, immutable, одно из: Delete, Retain
  cpg: "test-cpg"         # optional, immutable
EOF
  • Проверить создание объекта можно командой (Phase должен быть Created):
kubectl get hpestorageconnections.storage.deckhouse.io <имя hpestorageconnection>
kubectl get hpestorageclasses.storage.deckhouse.io <имя hpestorageclass>

Проверка работоспособности модуля.

Проверить работоспособность модуля можно так