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

    Обзор функции: Добавляя ConfigMap StorageDescription в пространство имён kube-public, платформа автоматически определяет поддержку снимков (snapshot) для каждого стороннего StorageClass, а также поддерживаемые режимы томов и режимы доступа (включая режимы доступа, специфичные для блочных томов). На экране создания PVC будут отображаться только допустимые варианты, что поможет вам легко выбрать и использовать нужные функции хранилища.

    1. Начало работы

    1.1 Создание или обновление ConfigMap

    Важно: Выполняйте следующую операцию в пространстве имён kube-public, иначе платформа не распознает возможности хранилища.

    Отредактируйте или создайте ConfigMap, имя которого начинается с sd-, например sd-capabilities-enhanced:

    kubectl -n kube-public edit configmap sd-capabilities-enhanced

    Обязательная метка

    metadata:
      labels:
        features.alauda.io/type: StorageDescription

    1.2 Заполнение поля data

    Каждый key соответствует provisioner StorageClass; значение — YAML-строка, описывающая его возможности. Основные поля:

    ПолеТипОписание
    snapshotBooleanУказывает, поддерживаются ли снимки томов
    volumeModeList[String]Поддерживаемые режимы томов; минимум один из Filesystem, Block
    accessModesList[String]Режимы доступа, доступные при volumeMode равном Filesystem
    blockAccessModesList[String]Режимы доступа, специфичные для блочных томов (опционально)

    Если blockAccessModes не указаны, платформа использует accessModes для блочных томов.

    1.3 Применение конфигурации

    kubectl apply -f sd-capabilities-enhanced.yaml

    После применения UI автоматически подстраивает доступные опции, например:

    • При выборе режима тома Block выпадающий список режимов доступа заполняется значениями из blockAccessModes.
    • Если snapshot: true, операции, связанные со снимками, становятся доступны на странице PVC.

    2. Пример ConfigMap

    apiVersion: v1
    kind: ConfigMap
    metadata:
      name: sd-capabilities-enhanced
      namespace: kube-public
      labels:
        features.alauda.io/type: StorageDescription
    data:
      storage.advanced-block-fs.com: |-
        snapshot: true
        volumeMode:
          - Filesystem
          - Block
        accessModes:
          - ReadWriteOnce
          - ReadOnlyMany
        blockAccessModes:
          - ReadWriteOnce
      storage.filesystem-basic.com: |-
        snapshot: false
        volumeMode:
          - Filesystem
        accessModes:
          - ReadWriteOnce
          - ReadWriteMany

    3. Обновление существующих описаний возможностей

    1. Найдите ключ provisioner, который хотите изменить.
    2. Отредактируйте значения полей в соответствии с реальными возможностями.
    3. Повторно примените ConfigMap с помощью kubectl apply -f .... Платформа опрашивает обновления и автоматически обновляет UI; вы также можете обновить страницу браузера, чтобы сразу увидеть изменения.

    4. Совместимость с устаревшим форматом

    • Если отсутствует blockAccessModes, блочные тома наследуют accessModes.
    • Удалять старые ConfigMap не нужно; просто добавьте новые поля для плавного обновления.

    5. Часто задаваемые вопросы

    СимптомВозможная причинаРешение
    Список режимов доступа пуст для блочных томовblockAccessModes пуст и accessModes тоже пустыУкажите хотя бы одно из двух
    UI по-прежнему показывает устаревшие возможностиConfigMap не сохранён или кэш браузераПроверьте с помощью kubectl get cm, обновите страницу