VolumeAttributesClass API 支持用户动态修改卷属性,已在 Kubernetes v1.34 中进阶为正式版(GA)。 这标志着重要的里程碑,它提供了一种健壮且稳定的方式,让你可以直接在 Kubernetes 内调优持久化存储。
从本质上讲,VolumeAttributesClass 是一种集群作用域资源,用于定义卷的一组可变参数。 可以把它想象成存储的"配置文件",允许集群管理员暴露不同的服务质量(QoS)级别或性能档位。
然后,用户可以在其 PersistentVolumeClaim(PVC)中指定 volumeAttributesClassName,
以表明他们期望的属性类别。
其中的奥妙在于容器存储接口(CSI):当引用了 VolumeAttributesClass 的 PVC 被更新时,
关联的 CSI 驱动会与底层存储系统交互,将指定的更改应用到卷上。
这意味着你现在可以:
与 Beta 版本相比,GA 版本带来了两项重要增强。
为了提高韧性和用户体验,GA 版本引入了明确的取消支持, 用于处理请求的卷修改遇到错误的情况。 如果底层存储系统或 CSI 驱动表明所请求的更改无法被应用(例如参数无效), 用户可以取消操作并将卷回滚到之前稳定的配置,从而避免卷停留在不一致的状态。
虽然 VolumeAttributesClass 没有新增配额类型,但 Kubernetes 控制平面可以配置为对引用特定 VolumeAttributesClass 的 PersistentVolumeClaim 强制执行配额。
这可以通过在 ResourceQuota 中使用 scopeSelector 字段来实现,让配额作用于那些
将 .spec.volumeAttributesClassName 设置为特定 VolumeAttributesClass 名称的 PVC。
更多细节请参见此处。
如有与 VolumeAttributesClass 相关的任何咨询或具体问题,请联系 SIG Storage 社区。