Kubernetes v1.34: 将卷组快照推进至 v1beta2 阶段

卷组快照在 Kubernetes 1.27 版本中作为 Alpha 特性被引入, 并在 Kubernetes 1.32 版本中移至 Beta 阶段。 Kubernetes v1.34 的最近一次发布将该支持移至第二个 Beta 阶段。 对卷组快照的支持依赖于一组用于组快照的扩展 API。 这些 API 允许用户为一组卷获取崩溃一致性快照。在后台,Kubernetes 根据标签选择器对多个 PersistentVolumeClaim 分组,并进行快照操作。关键目标是允许你将这组快照恢复到新卷上, 并基于崩溃一致性恢复点恢复工作负载。

此新特性仅支持 CSI 卷驱动。

Beta 2 的新内容

在测试 Beta 版本时,我们遇到了一个问题:如果 CSI 驱动未实现 ListSnapshots RPC 调用, 则对于单独的 VolumeSnapshotContent 和 VolumeSnapshot 来说,restoreSize 字段不会被设置。 我们在这里评估了不同的选项此处, 并决定为此发布一个新的 Beta 版本 API。

具体来说,在 v1beta2 中添加了一个 VolumeSnapshotInfo 结构,它包含了属于卷组快照成员的单个卷快照的信息。

VolumeSnapshotInfoList,即 VolumeSnapshotInfo 的列表,被添加到 VolumeGroupSnapshotContentStatus 中,取代了 VolumeSnapshotHandlePairList。

VolumeSnapshotInfoList 是 CSI 驱动通过 ListSnapshots 调用返回的快照信息列表,用于识别存储系统上的快照。

VolumeSnapshotInfoList 由 csi-snapshotter 边车根据 CSI 驱动的 CreateVolumeGroupSnapshot 调用返回的 CSI CreateVolumeGroupSnapshotResponse 填充。

现有的 v1beta1 API 对象将通过转换 Webhook 转换为新的 v1beta2 API 对象。

接下来?

根据反馈和采用情况,Kubernetes 项目计划在未来的版本中将卷组快照实现推进到正式发布版本(GA)。

如何了解更多?

如何参与?

这个项目,如同所有的 Kubernetes 项目一样,是许多来自不同背景的贡献者共同努力的结果。 代表 SIG Storage,我想对过去几个季度中挺身而出帮助项目达到 Beta 阶段的贡献者们表示巨大的感谢:

对于那些有兴趣参与 CSI 或 Kubernetes 存储系统任何部分的设计和开发的人,可以加入 Kubernetes 存储特别兴趣小组(SIG)。 我们始终欢迎新的贡献者。

我们还定期举行数据保护工作组会议。 新参会者可以加入我们的讨论。