Kubernetes 变更块跟踪(Changed Block Tracking,CBT)API - Beta 版本差异
CSI 驱动的变更块跟踪(Changed Block Tracking,CBT)支持已于
2025 年 9 月作为 Alpha 特性发布。
随着 external-snapshot-metadata
项目在 3 月发布 v1.0.0 版本,该特性已进入 Beta 阶段。
如果你还不熟悉 Kubernetes 存储的变更块跟踪,
Alpha 公告介绍了其动机、
三个主要组件(CSI SnapshotMetadata gRPC 服务、SnapshotMetadataService CRD
和 external-snapshot-metadata 边车)以及如何使用该 API 的演练。
本文重点关注 Beta 版本中的不同之处。
Beta 中的新特性
此版本的主要变更是将 SnapshotMetadataService CRD 从 v1alpha1 升级到 v1beta1。
用于通告驱动元数据服务的 CRD 现在提供 cbt.storage.k8s.io/v1beta1。
模式本身没有变化,但此版本移除了 v1alpha1(而不是与新版本同时提供)。
如果你从 Alpha 升级,需要:
- 重新应用
v1.0.0附带的 CRD 定义。 - 更新 SnapshotMetadataService 清单,使用
apiVersion: cbt.storage.k8s.io/v1beta1。 - 更新任何与该 CRD 通信的客户端或控制器代码。
这是一次性变更。两个版本之间没有自动转换。
兼容性
- 最低 Kubernetes 版本:1.33
- CSI 规范:1.10 或更高
- 容器镜像:
registry.k8s.io/sig-storage/csi-snapshot-metadata:v1.0.0
试用
Alpha 博客中的入门章节仍然适用。 简而言之:
- 确保你的 CSI 驱动支持卷快照并附带
external-snapshot-metadata边车。 - 安装 SnapshotMetadataService CRD(
v1.0.0版本中的v1beta1定义)。 - 为你的驱动创建一个 SnapshotMetadataService 资源。
- 使用客户端 ——
snapshot-metadata-lister或你自己的实现 —— 调用GetMetadataAllocated和GetMetadataDelta。
如果你想查看完整的端到端流程, hostpath 驱动示例是一个很好的起点。
下一步?
Beta 周期剩余阶段的重点是更广泛的 CSI 驱动采用和运维反馈, 然后该特性才会向 GA 推进。如果你维护一个 CSI 驱动, 现在是评估添加支持的好时机。如果你正在基于该 API 构建备份应用, 非常欢迎提供关于流式客户端和迭代器包的反馈。
在哪里可以了解更多?
- CSI 开发者文档 中的快照元数据部分。
- KEP-3314。
- external-snapshot-metadata 仓库。
- gRPC 模式。
- snapshot-metadata-lister 示例客户端。
如何参与?
这项工作是 SIG Storage 许多人贡献的结果。衷心感谢所有在 Alpha 到 Beta 期间 帮助审查、编码和测试该特性的人:
- Ben Swartzlander (bswartz)
- Carl Braganza (carlbraganza)
- Daniil Fedotov (hairyhum)
- Ivan Sim (ihcsim)
- Nikhil Ladha (Nikhil-Ladha)
- Praveen M (iPraveenParihar)
- Rakshith R (Rakshith-R)
- Xing Yang (xing-yang)
如果你想参与 Kubernetes 中的 CSI 或存储相关工作, SIG Storage 是一个很好的起点。 数据保护工作组 也会定期举行会议,随时欢迎新参与者加入。