Стадия жизненного цикла модуля: General Availability

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

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

Модуль csi-netapp реализует Container Storage Interface (CSI) для управления томами с использованием систем хранения данных NetApp. Модуль обеспечивает создание StorageClass в Kubernetes посредством управления пользовательскими ресурсами Kubernetes NetappStorageClass.

Создание StorageClass для CSI-драйвера csi.netapp.com пользователем запрещено. На данный момент модулем поддерживаются СХД, совместимые с Trident CSI от NetApp. Для поддержки других СХД NetApp свяжитесь с технической поддержкой Deckhouse.

На этой странице представлены инструкции по подключению NetApp к Deckhouse Kubernetes Platform (DKP), настройке соединения и созданию StorageClass.

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

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

Перед настройкой работы с СХД NetApp убедитесь, что выполнены следующие требования:

  • Наличие развернутой и настроенной СХД NetApp.
  • Уникальные IQN в /etc/iscsi/initiatorname.iscsi на каждом узле Kubernetes.

Настройка интеграции кластера с системой хранения NetApp

Чтобы начать работу с СХД NetApp, следуйте пошаговым инструкциям ниже. Все команды выполняйте на машине с административным доступом к API Kubernetes.

Для работы со снимками требуется подключенный модуль snapshot-controller.

  1. Выполните команду для активации модуля csi-netapp:

    d8 s module enable csi-netapp
    

    После активации модуля на всех узлах кластера будут:

    • Зарегистрирован CSI-драйвер;
    • Развернуты служебные поды компонентов csi-netapp.
  2. Дождитесь перехода модуля в состояние Ready:

    d8 k get module csi-netapp -w
    
  3. Убедитесь, что все поды в пространстве имен d8-csi-netapp находятся в состоянии Running или Completed и развернуты на всех узлах кластера:

    d8 k -n d8-csi-netapp get pod -owide -w
    
  4. Создайте ресурс NetappStorageConnection:

    d8 k apply -f -<<EOF
    apiVersion: storage.deckhouse.io/v1alpha1
    kind: NetappStorageConnection
    metadata:
      name: netapp
    spec:
      controlPlane:
        address: "172.17.1.55"
        username: "admin"
        password: "password"
        svm: "svm1"
    EOF
    
  5. Проверьте создание объекта следующей командой (Phase должен быть Created):

    d8 k get netappstorageconnections.storage.deckhouse.io <имя netappstorageconnection>
    
  6. Создайте ресурс NetappStorageClass:

    d8 k apply -f -<<EOF
    apiVersion: storage.deckhouse.io/v1alpha1
    kind: NetappStorageClass
    metadata:
      name: netapp
    spec:
      pool: "test-cpg"
      accessProtocol: "iscsi" # fc или iscsi (по умолчанию iscsi), неизменяемый параметр.
      fsType: "xfs" # xfs, ext3, ext4 (по умолчанию ext4), изменяемый параметр.
      storageConnectionName: "netapp" # Неизменяемый параметр.
      reclaimPolicy: Delete # Delete или Retain.
      cpg: "test-cpg"
    EOF
    
  7. Проверьте создание объекта следующей командой (Phase должен быть Created):

    d8 k get netappstorageclasses.storage.deckhouse.io <имя netappstorageclass>
    

Теперь система хранения NetApp готова к работе. Вы можете использовать созданный StorageClass для создания PersistentVolumeClaim в ваших приложениях.