卷属性类

功能状态: Kubernetes v1.34 [稳定](默认启用)

本页假定您熟悉 StorageClassesvolumesPersistentVolumes 在 Kubernetes 中的概念。

VolumeAttributesClass 提供了一种方式,供管理员描述他们提供的可变“存储类”。不同的类可能映射到不同的服务质量级别。Kubernetes 本身对这些类代表什么并不持特定意见。

此功能自版本 1.34 起已正式发布 (GA),用户可以选择禁用它。

您只能将 VolumeAttributesClasses 与由 容器存储接口 支持的存储后端一起使用,并且仅在相关的 CSI 驱动程序实现 ModifyVolume API 时才能使用。

VolumeAttributesClass API

每个 VolumeAttributesClass 包含 driverNameparameters,这些参数在属于该类的 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。

上次修改时间为 2025 年 7 月 29 日下午 6:02 PST:KEP-3751 VolumeAttributesClass GA in 1.34 Doc Update (2d15dba7b5)