卷属性类
Kubernetes v1.34 [稳定]
(默认启用:true)本页面假设你熟悉 Kubernetes 中的 StorageClasses、卷和 PersistentVolumes。
VolumeAttributesClass 为管理员提供了一种描述他们所提供的可变存储“类别”的方式。不同的类别可能映射到不同的服务质量级别。Kubernetes 本身对这些类别所代表的含义没有意见。
此功能自 1.34 版起普遍可用 (GA),用户可以选择禁用它。
你只能将 VolumeAttributesClass 与由 容器存储接口 支持的存储一起使用,并且仅限于相关的 CSI 驱动程序实现了 ModifyVolume
API 的情况。
VolumeAttributesClass API
每个 VolumeAttributesClass 都包含 driverName
和 parameters
,当属于该类别的 PersistentVolume (PV) 需要动态创建或修改时,会使用这些信息。
VolumeAttributesClass 对象的名称很重要,它决定了用户如何请求特定类别。管理员在首次创建 VolumeAttributesClass 对象时设置类别的名称和其他参数。虽然 PersistentVolumeClaim
中 VolumeAttributesClass 对象的名称是可变的,但现有类别中的参数是不可变的。
apiVersion: storage.k8s.io/v1
kind: VolumeAttributesClass
metadata:
name: silver
driverName: pd.csi.storage.gke.io
parameters:
provisioned-iops: "3000"
provisioned-throughput: "50"
Provisioner
每个 VolumeAttributesClass 都有一个 provisioner,它决定了用于配置 PV 的卷插件。必须指定 driverName
字段。
VolumeAttributesClass 的功能支持在 kubernetes-csi/external-provisioner 中实现。
你不仅限于指定 kubernetes-csi/external-provisioner。你还可以运行和指定外部 provisioner,它们是遵循 Kubernetes 定义规范的独立程序。外部 provisioner 的作者对其代码的存储位置、provisioner 的发布方式、运行方式、使用的卷插件等拥有完全的自由裁量权。
要了解 provisioner 如何与 VolumeAttributesClass 配合使用,请参阅 CSI 外部 provisioner 文档。
Resizer
每个 VolumeAttributesClass 都有一个 resizer,它决定了用于修改 PV 的卷插件。必须指定 driverName
字段。
VolumeAttributesClass 的修改卷功能支持在 kubernetes-csi/external-resizer 中实现。
例如,一个现有的 PersistentVolumeClaim 正在使用名为 silver 的 VolumeAttributesClass
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: test-pv-claim
spec:
…
volumeAttributesClassName: silver
…
集群中有一个新的 VolumeAttributesClass gold 可用
apiVersion: storage.k8s.io/v1
kind: VolumeAttributesClass
metadata:
name: gold
driverName: pd.csi.storage.gke.io
parameters:
iops: "4000"
throughput: "60"
最终用户可以使用新的 VolumeAttributesClass gold 更新 PVC 并应用
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: test-pv-claim
spec:
…
volumeAttributesClassName: gold
…
要了解 resizer 如何与 VolumeAttributesClass 配合使用,请参阅 CSI 外部 resizer 文档。
参数
VolumeAttributeClasses 具有描述其所属卷的参数。根据 provisioner 或 resizer 的不同,可能会接受不同的参数。例如,参数 iops
的值 4000
和参数 throughput
是 GCE PD 特有的。当省略参数时,在卷配置时使用默认值。如果用户使用具有省略参数的不同 VolumeAttributesClass 应用 PVC,则参数的默认值可能会根据 CSI 驱动程序的实现而使用。有关更多详细信息,请参阅相关的 CSI 驱动程序文档。
一个 VolumeAttributesClass 最多可以定义 512 个参数。参数对象的总长度(包括其键和值)不能超过 256 KiB。