Как аннотировать возможности стороннего хранилища

С ростом использования как публичных, так и приватных облачных сред интеграция сторонних хранилищ становится всё более важной. В этом руководстве описывается, как аннотировать возможности стороннего хранилища с помощью ConfigMap, чтобы ваша платформа могла автоматически распознавать и отображать эти возможности.

Содержание

Шаг 1: Откройте конфигурацию Storage Class

  1. Перейдите в Platform Management в интерфейсе вашей платформы.
  2. В левой боковой панели выберите Storage Management > Storage Classes.
  3. Нажмите Create Storage Class, чтобы начать определение нового класса хранилища.

Шаг 2: Заполните информацию о Storage Class

Укажите следующие данные в форме:

ПолеОписание
NameНазвание вашего нового класса хранилища.
Storage ClassВыберите или определите идентификатор класса хранилища.
ProvisionerВведите имя provisioner, используемого вашим плагином хранилища.

Шаг 3: Аннотируйте возможности хранилища с помощью ConfigMap

Чтобы включить аннотации возможностей, создайте ConfigMap в пространстве имён kube-public с соответствующей меткой и форматом данных.

Пример YAML:

apiVersion: v1
kind: ConfigMap
metadata:
  name: sd-built-in
  namespace: kube-public
  labels:
    features.alauda.io/type: StorageDescription
data:
  storage.type1.com: |-
    type: Filesystem
    volumeMode:
    - Filesystem
    accessModes:
    - ReadWriteOnce
    - ReadWriteMany
    - ReadWriteOncePod
  storage.type2.com: |-
    type: Filesystem
    snapshot: true
    volumeMode:
    - Filesystem
    - Block
    accessModes:
    - ReadWriteOnce
    - ReadOnlyMany
    - ReadWriteOncePod

Основные моменты:

  • metadata.name: должен начинаться с sd-, например, sd-configmap1.
  • metadata.namespace: должен быть kube-public.
  • metadata.labels: должен содержать features.alauda.io/type = StorageDescription.
  • data:
    • Каждый ключ соответствует полю provisioner в классе хранилища.
    • Каждое значение — это YAML-строка, описывающая поддерживаемые возможности хранилища.

Шаг 4: Понимание поддерживаемых полей возможностей хранилища

Ниже приведены поддерживаемые поля, которые можно определить в ConfigMap:

ВозможностьПолеОпцииЗначение по умолчаниюПримечания
TypetypeFilesystem, BlockЕсли опущено или указано неверно, тип отображается как неизвестный.
Snapshotsnapshottrue, falsefalseЕсли false или указано неверно, создание snapshot через UI формы отключено.
Volume ModevolumeModeFilesystem, BlockFilesystemPVC с режимом Block не поддерживают монтирование директорий.
Access ModeaccessModesReadWriteOnce, ReadOnlyMany, ReadWriteMany, ReadWriteOncePodЕсли опущено или указано неверно, режим доступа не выбирается через UI. ReadWriteOncePod в настоящее время не поддерживается формой.

Шаг 5: Завершите создание Storage Class

После заполнения всех данных:

  1. Нажмите Create, чтобы сохранить класс хранилища.
  2. Платформа автоматически сопоставит provisioner с ConfigMap и аннотирует класс хранилища определёнными возможностями.

Дополнительно: Создание PVC с использованием аннотированного Storage Class

При создании Persistent Volume Claim (PVC) через форму UI будут доступны только те возможности, которые поддерживаются и аннотированы в ConfigMap. Неподдерживаемые опции отображаться не будут.