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 trackingAlpha 公告 介绍了它的动机、三个主要组件(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 博客中的入门部分 仍然适用。简要来说:

  1. 确认你的 CSI 驱动支持卷快照,并附带 external-snapshot-metadata sidecar。
  2. 安装 SnapshotMetadataService CRD(来自 v1.0.0 发布的 v1beta1 定义)。
  3. 为你的驱动创建 SnapshotMetadataService 资源。
  4. 使用客户端——snapshot-metadata-lister,或你自己的实现—— 调用 GetMetadataAllocatedGetMetadataDelta

如果你想看完整的端到端流程, hostpath 驱动示例 是个不错的起点。

接下来做什么?

Beta 周期剩余时间的重点是让更多 CSI 驱动采用这一特性,并在其走向 GA 之前收集运维反馈。如果你在维护某个 CSI 驱动,现在正是评估是否加入支持的好时机。如果你正在基于这套 API 构建备份应用,欢迎就流式客户端和 iterator 包提出反馈。

在哪里可以了解更多?

如何参与?

这项工作凝聚了 SIG Storage 众多贡献者的心血。感谢所有在 Alpha 到 Beta 阶段帮助评审、编写代码和测试这一特性的人:

如果你想参与 Kubernetes 中 CSI 或存储相关的工作,可以从 SIG Storage 入手。Data Protection Working Group 也会定期开会,随时欢迎新成员参加。

来源: Kubernetes Blog← 返回首页