Kubernetes 1.31:用于卷修改的VolumeAttributesClass测试版

Kubernetes 1.31:用于卷修改的VolumeAttributesClass测试版

💡 原文英文,约500词,阅读约需2分钟。
📝

内容提要

Kubernetes 1.31引入了VolumeAttributesClass功能,允许动态修改卷参数。该功能通过容器存储接口(CSI)实现,并需要CSI驱动程序的支持。可以为PersistentVolumeClaim(PVC)更改VolumeAttributesClass,并且Kubernetes将相应地更新卷属性。然而,仍有一些计划中的功能,如配额支持,在此测试版本中尚不可用。

🔎

延伸解读

动态调整卷 IO 参数的意义

在 Kubernetes 中,存储类是不可变的,容量虽可动态调整,但 IO 服务质量参数(如 IOPS 或吞吐量)此前无法通过 API 修改。VolumeAttributesClass 的引入填补了这一空白,使工作负载在运行过程中能够按需调整卷的 IO 性能,从而更好地支持垂直扩展。这对于需要动态优化存储性能的应用场景尤为重要。

使用前提:CSI 驱动支持

VolumeAttributesClass 通过容器存储接口(CSI)实现,因此除了启用 VolumeAttributesClass 特性门控外,还必须使用支持 ModifyVolume API 的 CSI 驱动。这意味着该功能的可用性取决于存储供应商的驱动实现。读者在尝试前应确认所用 CSI 驱动是否已支持此特性,可参考 Kubernetes CSI 驱动列表获取最新信息。

与存储类的关键区别

VolumeAttributesClass 是集群范围的资源,由集群管理员创建,类似于存储类。但两者有一个重要区别:存储类在 PVC 中不可更改,而卷属性类可以在 PVC 中动态修改。例如,可以通过 kubectl patch 将 PVC 的 volumeAttributesClassName 从 silver 改为 gold,Kubernetes 会与 CSI 驱动协作更新卷属性,并同步更新 PVC 和 PV 的状态。

测试版的限制与注意事项

作为测试版功能,VolumeAttributesClass 尚不包含一些计划在正式版中提供的特性,最显著的是配额支持。这意味着管理员目前无法对卷属性类的使用设置配额限制。在评估是否采用此功能时,需考虑这一限制,并关注后续版本中配额支持的进展。

❓

Q&A

Kubernetes 1.31中的VolumeAttributesClass功能有什么作用?

VolumeAttributesClass功能允许动态修改卷参数,如IO性能,提升了卷的灵活性。

如何在Kubernetes中使用VolumeAttributesClass?

VolumeAttributesClass通过容器存储接口(CSI)实现,需在PersistentVolumeClaim中指定相应的属性类。

VolumeAttributesClass与存储类有什么区别?

VolumeAttributesClass可以在PersistentVolumeClaim中动态更改,而存储类是不可变的属性。

VolumeAttributesClass的创建需要哪些条件?

VolumeAttributesClass是集群范围的资源,由集群管理员创建,需支持CSI驱动程序。

Kubernetes 1.31的VolumeAttributesClass有哪些限制?

作为测试版功能,VolumeAttributesClass尚不支持配额等一些计划中的功能。

如何修改PersistentVolumeClaim中的VolumeAttributesClass?

可以使用kubectl命令通过patch操作修改PVC中的volumeAttributesClassName。

🏷️

标签

➡️

继续阅读