第三方存储能力注解指南

功能概述: 通过在 kube-public 命名空间中添加一个 StorageDescription 类型的 ConfigMap,平台会自动检测每个第三方 StorageClass 的快照支持情况以及支持的卷模式和访问模式(包括块设备专用访问模式)。PVC 创建界面将仅显示有效选项,帮助您轻松选择和使用合适的存储功能。

目录

1. 快速开始

1.1 创建或更新 ConfigMap

重要提示: 请在 kube-public 命名空间内 执行以下操作,否则平台无法识别存储能力。

编辑或创建一个名称以 sd- 开头的 ConfigMap,例如 sd-capabilities-enhanced

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

必需的标签

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

1.2 填充 data 字段

每个 key 对应一个 StorageClass 的 provisioner,其值是描述该存储能力的 YAML 字符串。主要字段说明:

字段类型说明
snapshotBoolean表示是否支持卷快照
volumeModeList[String]支持的卷模式;至少包含 FilesystemBlock 中的一个
accessModesList[String]volumeModeFilesystem 时可用的访问模式
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. 使用 kubectl apply -f ... 重新应用 ConfigMap。平台会轮询更新并自动刷新 UI,您也可以刷新浏览器以立即查看更改。

4. 与旧格式的兼容性

  • 如果缺少 blockAccessModes,块设备卷将继承 accessModes
  • 无需删除旧的 ConfigMap,只需添加新字段即可实现平滑升级。

5. 常见问题解答

现象可能原因解决方案
块设备卷访问模式列表为空blockAccessModesaccessModes 均为空至少提供其中一个
UI 仍显示过时的能力信息ConfigMap 未保存或浏览器缓存使用 kubectl get cm 验证,刷新页面