Kubernetes 变更块跟踪 API - Beta 版本差异
external-snapshot-metadata v1.0.0 将 CSI 变更块追踪推向 Beta,SnapshotMetadataService CRD 升到 v1beta1 且不再兼容 v1alpha1。
中文
复制
CSI 驱动的 Changed Block Tracking (CBT) 支持于 2025 年 9 月
以 Alpha 形式发布。随着
external-snapshot-metadata
项目在 2026 年 3 月发布 v1.0.0,该功能进入 Beta。
如果你还不了解 Kubernetes 存储中的 changed block tracking,
Alpha 公告 介绍了它的动机、三个主要组件(CSI SnapshotMetadata
gRPC 服务、SnapshotMetadataService CRD 以及
external-snapshot-metadata sidecar),并完整演示了如何使用这套 API。CBT 目前只适用于块卷;文件卷和网络文件共享的变更列表跟踪不在该功能范围内。本文重点讲 Beta 有哪些不同。
Beta 的新变化
该版本的主要改动是把 SnapshotMetadataService CRD 从 v1alpha1 提升到 v1beta1。这个用于对外公布驱动元数据服务的 CRD 现在提供
cbt.storage.k8s.io/v1beta1。schema 本身没有变化,但本次发布移除了 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-metadatasidecar。 - 安装 SnapshotMetadataService CRD(来自
v1.0.0发布的v1beta1定义)。 - 为你的驱动创建 SnapshotMetadataService 资源。
- 使用客户端——
snapshot-metadata-lister,或你自己的实现—— 调用GetMetadataAllocated和GetMetadataDelta。
如果你想看完整的端到端流程, hostpath 驱动示例 是个不错的起点。
接下来做什么?
Beta 周期剩余时间的重点是让更多 CSI 驱动采用这一特性,并在其走向 GA 之前收集运维反馈。如果你在维护某个 CSI 驱动,现在正是评估是否加入支持的好时机。如果你正在基于这套 API 构建备份应用,欢迎就流式客户端和 iterator 包提出反馈。
在哪里可以了解更多?
- 关于快照元数据的 CSI 开发者文档
- KEP-3314
- external-snapshot-metadata 仓库
- gRPC schema
- 示例客户端 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 入手。Data Protection Working Group 也会定期开会,随时欢迎新成员参加。