Модуль csi-huawei предназначен для управления томами c использованием систем хранения данных Huawei. Он позволяет создавать StorageClass в Kubernetes с помощью ресурса HuaweiStorageClass.
Подробнее с описанием модуля можно ознакомиться в разделе документации модуля.
Архитектура модуля
Для упрощения схемы приняты следующие допущения:
- На схеме показано, что контейнеры разных подов взаимодействуют друг с другом напрямую. Фактически они взаимодействуют через соответствующие сервисы Kubernetes (внутренние балансировщики). Названия сервисов не указываются, если они очевидны из контекста. В остальных случаях название сервиса указано над стрелкой.
- Поды могут быть запущены в нескольких репликах, однако на схеме все поды изображены в одной реплике.
Архитектура модуля csi-huawei на уровне 2 модели C4 и его взаимодействия с другими компонентами Deckhouse Kubernetes Platform (DKP) изображены на следующей диаграмме:

Компоненты модуля
Модуль состоит из следующих компонентов:
-
Controller — контроллер, обслуживающий следующие кастомные ресурсы:
- HuaweiStorageConnection — параметры подключения к СХД Huawei;
- HuaweiStorageClass — определяет конфигурацию для Kubernetes StorageClass.
В HuaweiStorageClass задается название пула ресурсов, тип файловой системы и политика обработки тома при удалении PVC (reclaim policy).
Состоит из следующих контейнеров:
- controller — основной контейнер;
- webhooks — сайдкар-контейнер, реализующий вебхук-сервер для валидации StorageClass.
-
CSI-драйвер (huawei) — реализация CSI-драйвера, использующего provisioner
csi.huawei.com. С архитектурой CSI-драйвераcsi-huaweiможно ознакомиться в соответствующем разделе документации.CSI-драйвер
csi-huaweiобслуживает следующие кастомные ресурсы:- StorageBackendClaim — запрос на подключение к СХД Huawei;
- StorageBackendContent — описание фактического подключения к СХД Huawei.
Взаимодействия модуля
Модуль взаимодействует со следующими компонентами:
-
Kube-apiserver:
- мониторинг ресурсов PersistentVolume, PersistentVolumeClaim, VolumeAttachment, StorageClass;
- работа с кастомными ресурсами HuaweiStorageConnection, HuaweiStorageClass, StorageBackendClaim, StorageBackendContent;
- создание ресурса StorageClass.
-
СХД Huawei — создание и удаление томов, подключение и отключение томов от узлов.
С модулем взаимодействуют следующие внешние компоненты:
- Kube-apiserver — валидация кастомных ресурсов StorageBackendClaim, а также стандартных ресурсов StorageClass.