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

自定义卷名和标签

贡献者 netapp-aruldeepa

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

开始之前

支持自定义卷名称和标签:

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

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

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

限制

  1. 可自定义卷名称仅与ONTAP本地驱动程序兼容。

  2. 可自定义的卷名称不适用于现有卷。

可自定义卷名称的关键行为

  1. 如果由于名称模板中的语法无效而导致失败,则后端创建将失败。但是,如果模板应用失败,则卷将按照现有的命名约定命名。

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

后端配置示例,包含名称模板和标签

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

根级别示例
{
  "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}}"
  }
}
池级示例
{
  "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驱动程序,如果卷名称超过名称限制,则卷创建过程将失败。