Модуль csi-hpe предназначен для управления томами c использованием систем хранения данных HPE. Он позволяет создавать StorageClass в Kubernetes с помощью ресурса HPEStorageClass.

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

Архитектура модуля

Для упрощения схемы приняты следующие допущения:

  • На схеме показано, что контейнеры разных подов взаимодействуют друг с другом напрямую. Фактически они взаимодействуют через соответствующие сервисы Kubernetes (внутренние балансировщики). Названия сервисов не указываются, если они очевидны из контекста. В остальных случаях название сервиса указано над стрелкой.
  • Поды могут быть запущены в нескольких репликах, однако на схеме все поды изображены в одной реплике.

Архитектура модуля csi-hpe на уровне 2 модели C4 и его взаимодействия с другими компонентами Deckhouse Kubernetes Platform (DKP) изображены на следующей диаграмме:

Архитектура модуля csi-hpe

Компоненты модуля

Модуль состоит из следующих компонентов:

  1. Controller — контроллер, обслуживающий следующие кастомные ресурсы:

    • HPEStorageConnection — параметры подключения к СХД HPE;
    • HPEStorageClass — определяет конфигурацию для Kubernetes StorageClass.

    В HPEStorageClass задается протокол подключения, название пула ресурсов, тип файловой системы и политика обработки тома при удалении PVC (reclaim policy).

    Также controller синхронизирует лейбл storage.deckhouse.io/csi-hpe-node для узлов кластера в соответствии со значением селектора узлов spec.settings.nodeSelector кастомного ресурса ModuleConfig.

    Состоит из следующих контейнеров:

    • controller — основной контейнер;
    • webhooks — сайдкар-контейнер, реализующий вебхук-сервер для проверки StorageClass.
  2. CSI-драйвер (hpe) — реализация CSI-драйвера, использующего provisioner csi.hpe.com. С типовой архитектурой CSI-драйвера, используемого в DKP, можно ознакомиться в описании архитектуры CSI-драйвера.

  3. Primera3par-csp — сервисный контейнер-провайдер (Container Storage Provider, CSP), обеспечивающий интеграцию CSI-драйвера с системами хранения данных HPE Primera и 3PAR. Выполняет функции взаимодействия между Kubernetes и СХД, а также управляет сессиями и репликацией путей.

Взаимодействия модуля

Модуль взаимодействует со следующими компонентами:

  1. Kube-apiserver:

    • мониторинг ресурсов PersistentVolume, PersistentVolumeClaim, VolumeAttachment и StorageClass;
    • работа с кастомными ресурсами HPEStorageConnection и HPEStorageClass;
    • создание и обновление ресурсов VolumeSnapshotClass, Secret и StorageClass.
  2. Система хранения HPE — создание, удаление и управление томами, а также организация мультипутевого доступа к данным.

С модулем взаимодействуют следующие внешние компоненты:

  • Kube-apiserver — валидация ресурсов StorageClass.

Дополнительные ресурсы