Skip to main content
简体中文版经机器翻译而成,仅供参考。如与英语版出现任何冲突,应以英语版为准。

自定义卷名和标签

使用 Trident,您可以为创建的卷分配有意义的名称和标签。这有助于您识别卷并轻松映射到相应的 Kubernetes 资源 (PVC)。您还可以在后端级别定义模板,用于创建自定义卷名和自定义标签;您创建、导入或克隆的任何卷都将遵守模板。

开始之前

可定制的卷名和标签支持:

  • 卷创建、导入和克隆操作。

  • 对于 ontap-nas-economy 驱动程序,只有 Qtree 卷的名称符合名称模板。

  • 对于 ontap-san-economy 驱动程序,只有 LUN 名称符合名称模板。

限制

  • 自定义卷名仅与 ONTAP 本地驱动程序兼容。

  • 只有 ontap-sanontap-nasontap-nas-flexgroup 驱动程序才支持自定义标签。

  • 自定义卷名称不适用于现有卷。

可定制卷名的关键行为

  • 如果由于名称模板中的语法无效而发生故障,则后端创建将失败。但是,如果模板应用失败,将根据现有的命名约定命名卷。

  • 当卷使用后端配置中的名称模板命名时,存储前缀不适用。任何所需的前缀值都可以直接添加到模板中。

使用名称模板和标签的后端配置示例

可以在根和/或池级别定义自定义名称模板。

根级别示例
{
  "version": 1,
  "storageDriverName": "ontap-nas",
  "backendName": "ontap-nfs-backend",
  "managementLIF": "<ip address>",
  "svm": "svm0",
  "username": "<admin>",
  "password": "<password>",
  "defaults": {
    "nameTemplate": "{{.volume.Name}}_{{.labels.cluster}}_{{.volume.Namespace}}_{{.volume.RequestName}}"
  },
  "labels": {
    "cluster": "ClusterA",
    "PVC": "{{.volume.Namespace}}_{{.volume.RequestName}}"
  }
}
Pool 级别示例
{
  "version": 1,
  "storageDriverName": "ontap-nas",
  "backendName": "ontap-nfs-backend",
  "managementLIF": "<ip address>",
  "svm": "svm0",
  "username": "<admin>",
  "password": "<password>",
  "useREST": true,
  "storage": [
    {
      "labels": {
        "labelname": "label1",
        "name": "{{ .volume.Name }}"
      },
      "defaults": {
        "nameTemplate": "pool01_{{ .volume.Name }}_{{ .labels.cluster }}_{{ .volume.Namespace }}_{{ .volume.RequestName }}"
      }
    },
    {
      "labels": {
        "cluster": "label2",
        "name": "{{ .volume.Name }}"
      },
      "defaults": {
        "nameTemplate": "pool02_{{ .volume.Name }}_{{ .labels.cluster }}_{{ .volume.Namespace }}_{{ .volume.RequestName }}"
      }
    }
  ]
}

命名模板示例

示例 1

"nameTemplate": "{{ .config.StoragePrefix }}_{{ .volume.Name }}_{{ .config.BackendName }}"

示例 2

"nameTemplate": "pool_{{ .config.StoragePrefix }}_{{ .volume.Name }}_{{ slice .volume.RequestName 1 5 }}""

需要考虑的要点

  1. 对于卷导入,仅当现有卷具有特定格式的标签时,才会更新标签。例如: {"provisioning":{"Cluster":"ClusterA", "PVC": "pvcname"}}

  2. 对于托管卷导入,卷名遵循后端定义中根级别定义的名称模板。

  3. Trident 不支持使用带有存储前缀的切片操作符。

  4. 如果模板没有产生唯一的卷名,Trident 将附加几个随机字符以创建唯一的卷名。

  5. 如果 NAS 经济卷的自定义名称长度超过 64 个字符,Trident 将根据现有的命名约定命名卷。对于所有其他 ONTAP 驱动程序,如果卷名超过名称限制,则卷创建过程将失败。