首页/开发/CI/CD 与发布速查/CRD 升级与存储版本迁移
发布策略60 条

CRD 升级与存储版本迁移

CRD 是集群级扩展资源:升级要处理多版本并存与存储版本切换,顺序是先提供新版本、迁移使用者、再切存储版本、最后移除旧版本。

CI/CD 与发布速查开发更新于 2026-10-12
多版本spec.versions 可同时提供多个 served 版本
存储版本storage: true 的版本只应有一个
顺序加新版本 → 迁移 → 切存储 → 移除旧版本
风险字段级行为变化(未识别字段、默认值)

检查版本结构

检查版本结构
kubectl get crd examples.example.com -o jsonpath='{.spec.versions[*].name}'
kubectl explain example.spec   # 对比新旧字段
CRD 与控制器镜像要配套发布:新 CRD + 旧控制器可能无法处理新增字段。

易错点

  • 直接切换存储版本:存量对象若无法转换会读取失败
  • CRD 与控制器混在一次大发布:出问题的定位成本成倍上升

数据来源与参考

  • Kubernetes 文档《Versions in CustomResourceDefinitions》
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌