卷属性类
Kubernetes v1.34 [稳定](默认启用)本页假定您熟悉 StorageClasses、volumes 和 PersistentVolumes 在 Kubernetes 中的概念。
VolumeAttributesClass 提供了一种方式,供管理员描述他们提供的可变“存储类”。不同的类可能映射到不同的服务质量级别。Kubernetes 本身对这些类代表什么并不持特定意见。
此功能自版本 1.34 起已正式发布 (GA),用户可以选择禁用它。
您只能将 VolumeAttributesClasses 与由 容器存储接口 支持的存储后端一起使用,并且仅在相关的 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"
配置器
每个 VolumeAttributesClass 都有一个配置器,用于确定用于配置 PV 的哪个卷插件。必须指定字段 driverName。
VolumeAttributesClass 的功能支持在 kubernetes-csi/external-provisioner 中实现。
您不限于指定 kubernetes-csi/external-provisioner。您还可以运行和指定外部配置器,这些配置器是遵循 Kubernetes 定义的规范的独立程序。外部配置器的作者对其代码驻留位置、配置器的交付方式、运行方式、使用的卷插件等拥有完全的自由裁量权。
要了解配置器如何与 VolumeAttributesClass 协同工作,请参阅 CSI external-provisioner 文档。
调整器
每个 VolumeAttributesClass 都有一个调整器,用于确定用于修改 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"
最终用户可以更新 PVC 使用新的 VolumeAttributesClass gold 并应用
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: test-pv-claim
spec:
…
volumeAttributesClassName: gold
…
要了解调整器如何与 VolumeAttributesClass 协同工作,请参阅 CSI external-resizer 文档。
Parameters
VolumeAttributeClasses 具有描述属于它们的卷的参数。根据配置器或调整器,可以接受不同的参数。例如,参数 iops 的值 4000 和参数 throughput 是 GCE PD 特有的。如果省略了参数,则在卷配置时将使用默认值。如果用户应用了带有省略参数的不同 VolumeAttributesClass 的 PVC,则根据 CSI 驱动程序实现,参数的默认值可能会被使用。有关更多详细信息,请参阅相关的 CSI 驱动程序文档。
VolumeAttributesClass 可以定义最多 512 个参数。参数对象(包括其键和值)的总长度不能超过 256 KiB。