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

    С ростом использования как публичных, так и приватных облачных сред интеграция сторонних хранилищ становится всё более важной. В этом руководстве описывается, как аннотировать возможности стороннего хранилища с помощью 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. Неподдерживаемые опции отображаться не будут.