Доступно в некоторых коммерческих редакциях: EE
Подробнее см. в разделе Условия и цены.
Deckhouse поддерживает управление хранилищами, подключёнными через iSCSI или Fibre Channel, обеспечивая возможность работы с томами на уровне блоковых устройств. Это позволяет интегрировать системы хранения данных с Kubernetes и управлять ими через CSI-драйвер.
На этой странице представлены инструкции по подключению SCSI-устройств в Deckhouse, созданию SCSITarget, StorageClass, а также проверке работоспособности системы.
Поддерживаемые возможности
- Обнаружение LUN через iSCSI/FC;
- Создание PersistentVolume из заранее подготовленных LUN;
- Удаление PersistentVolume и очистка данных на LUN;
- Подключение LUN к узлам через iSCSI/FC;
- Создание
multipath
-устройств и их монтирование в поды; - Отключение LUN от узлов.
Ограничения
- Невозможно создать LUN на СХД;
- Нельзя изменить размер LUN;
- Снимки (snapshots) не поддерживаются.
Системные требования
- Настроенная и доступная СХД с подключением через iSCSI/FC;
- Уникальные IQN на каждом узле Kubernetes в файле
/etc/iscsi/initiatorname.iscsi
.
Настройка и конфигурация
Все команды выполняются на машине с административным доступом к API Kubernetes.
Включение модуля
Для работы с хранилищами, подключёнными через SCSI, включите модуль csi-scsi-generic
. Это приведет к:
- Регистрации CSI-драйвера;
- Запуску сервисных подов
csi-scsi-generic
.
1d8 k apply -f - <<EOF
2apiVersion: deckhouse.io/v1alpha1
3kind: ModuleConfig
4metadata:
5 name: csi-scsi-generic
6spec:
7 enabled: true
8 version: 1
9EOF
Дождитесь, пока модуль перейдет в состояние Ready
.
1d8 k get module csi-scsi-generic -w
Создание SCSITarget
Для работы с SCSI-устройствами создайте ресурсы SCSITarget.
1d8 k apply -f -<<EOF
2apiVersion: storage.deckhouse.io/v1alpha1
3kind: SCSITarget
4metadata:
5 name: hpe-3par-1
6spec:
7 deviceTemplate:
8 metadata:
9 labels:
10 my-key: some-label-value
11 iSCSI:
12 auth:
13 login: ""
14 password: ""
15 iqn: iqn.2000-05.com.3pardata:xxxx1
16 portals:
17 - 192.168.1.1
18---
19apiVersion: storage.deckhouse.io/v1alpha1
20kind: SCSITarget
21metadata:
22 name: hpe-3par-2
23spec:
24 deviceTemplate:
25 metadata:
26 labels:
27 my-key: some-label-value
28 iSCSI:
29 auth:
30 login: ""
31 password: ""
32 iqn: iqn.2000-05.com.3pardata:xxxx2
33 portals:
34 - 192.168.1.2
35EOF
Пример команд для FC ресурса:
1d8 k apply -f -<<EOF
2apiVersion: storage.deckhouse.io/v1alpha1
3kind: SCSITarget
4metadata:
5 name: scsi-target-2
6spec:
7 fibreChannel:
8 WWNs:
9 - 00:00:00:00:00:00:00:00
10 - 00:00:00:00:00:00:00:01
11 deviceTemplate:
12 metadata:
13 labels:
14 some-label-key: some-label-value1
15EOF
Обратите внимание, что в примере выше используются два SCSITarget. Таким образом можно создать несколько SCSITarget как для одного, так и для разных СХД. Это позволяет использовать multipath
для повышения отказоустойчивости и производительности.
Проверить создание объекта можно командой (Phase
должен быть Created
):
1d8 k get scsitargets.storage.deckhouse.io <имя scsitarget>
Создание StorageClass
Для создания StorageClass необходимо использовать ресурс SCSIStorageClass. Пример команд для создания такого ресурса:
1d8 k apply -f -<<EOF
2apiVersion: storage.deckhouse.io/v1alpha1
3kind: SCSIStorageClass
4metadata:
5 name: scsi-all
6spec:
7 scsiDeviceSelector:
8 matchLabels:
9 my-key: some-label-value
10 reclaimPolicy: Delete
11EOF
Обратите внимание на scsiDeviceSelector
. Этот параметр позволяет выбрать SCSITarget для создания PersistentVolume по меткам. В примере выше выбираются все SCSITarget с меткой my-key: some-label-value
. Эта метка будет выставлена на все устройства, которые будут обнаружены в указанных SCSITarget.
Проверить создание объекта можно командой (Phase
должен быть Created
):
1d8 k get scsistorageclasses.storage.deckhouse.io <имя scsistorageclass>
Как проверить работоспособность модуля?
Проверьте состояние подов в пространстве d8-csi-scsi-generic
. Все поды должны быть в состоянии Running
или Completed
и запущены на всех узлах.
1d8 k -n d8-csi-scsi-generic get pod -owide -w