Доступно в редакциях: EE, CSE Lite (1.73), CSE Pro (1.73)
Стадия жизненного цикла модуля: General Availability
У модуля есть требования для установки
Модуль предоставляет CSI для управления томами c использованием СХД TATLIN.UNIFIED. Модуль позволяет создавать StorageClass в Kubernetes через создание пользовательских ресурсов Kubernetes YadroTatlinUnifiedStorageClass.
Внимание! Создание
StorageClassдля CSI-драйвераcsi-tatlinunified.yadro.comпользователем запрещено.
Для работы модуля требуется подключенный модуль snapshot-controller.
Доступные режимы доступа для модуля: RWO, RWX — только в DVP.
Системные требования и рекомендации
Требования
- Наличие развернутой и настроенной СХД TATLIN.
- Уникальные iqn в /etc/iscsi/initiatorname.iscsi на каждой из Kubernetes Nodes
Быстрый старт
Все команды следует выполнять на машине, имеющей доступ к API Kubernetes с правами администратора.
Включение модуля
- Включить модуль
csi-yadro-tatlin-unified. Это приведет к тому, что на всех узлах кластера будет:- зарегистрирован CSI драйвер;
- запущены служебные поды компонентов
csi-yadro-tatlin-unified.
kubectl apply -f - <<EOF
apiVersion: deckhouse.io/v1alpha1
kind: ModuleConfig
metadata:
name: csi-yadro-tatlin-unified
spec:
enabled: true
version: 1
EOF- Дождаться, когда модуль перейдет в состояние
Ready.
kubectl get module csi-yadro-tatlin-unified -wСоздание StorageClass
Для создания StorageClass необходимо использовать ресурсы YadroTatlinUnifiedStorageClass и YadroTatlinUnifiedStorageConnection. Пример команд для создания таких ресурсов:
kubectl apply -f -<<EOF
apiVersion: storage.deckhouse.io/v1alpha1
kind: YadroTatlinUnifiedStorageConnection
metadata:
name: yad1
spec:
controlPlane:
address: "172.19.28.184"
username: "admin"
password: "cGFzc3dvcmQ=" # ДОЛЖЕН БЫТЬ ЗАКОДИРОВАН В BASE64
ca: "base64encoded"
skipCertificateValidation: true
dataPlane:
protocol: "iscsi"
iscsi:
volumeExportPort: "p50,p51,p60,p61"
EOFДля использования NVMe-over-TCP (требуется СХД Tatlin Unified Gen2 с прошивкой 3.2.0 или новее и предварительно созданная группа доступа типа nvme на СХД, например tatlin-cli accessgroup create --name nvme_group --type nvme) укажите dataPlane.protocol: nvme-tcp и имя группы доступа:
kubectl apply -f -<<EOF
apiVersion: storage.deckhouse.io/v1alpha1
kind: YadroTatlinUnifiedStorageConnection
metadata:
name: yad-nvme
spec:
controlPlane:
address: "172.19.28.184"
username: "admin"
password: "cGFzc3dvcmQ=" # ДОЛЖЕН БЫТЬ ЗАКОДИРОВАН В BASE64
ca: "base64encoded"
skipCertificateValidation: true
dataPlane:
protocol: "nvme-tcp"
nvmeTcp:
volumeExportPort: "p40,p41"
accessGroupName: "nvme_group"
EOFЕсли хотя бы один YadroTatlinUnifiedStorageConnection использует nvme-tcp, модуль дополнительно установит nvme-cli, загрузит модуль ядра nvme-tcp, включит options nvme_core multipath=Y и применит udev-правило с iopolicy для СХД TATLIN на каждом узле данных CSI.
kubectl apply -f -<<EOF
apiVersion: storage.deckhouse.io/v1alpha1
kind: YadroTatlinUnifiedStorageClass
metadata:
name: yad1
spec:
fsType: "xfs"
pool: "pool-hdd"
storageConnectionName: "yad1"
reclaimPolicy: Delete
EOF- Проверить создание объекта можно командой (Phase должен быть
Created):
kubectl get yadrotatlinunifiedstorageconnections.storage.deckhouse.io <имя yadrotatlinunifiedstorageconnection>kubectl get yadrotatlinunifiedstorageclasses.storage.deckhouse.io <имя yadrotatlinunifiedstorageclass>Проверка работоспособности модуля.
Проверить работоспособность модуля можно так