You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

K8s v1.9.2中CRD的Generation字段不随Spec更新,是否正常?

关于K8s v1.9.2中CRD ObjectMeta.Generation始终为0的问题

这不是配置错误,而是Kubernetes 1.9.x版本的预期行为,原因和当时CRD的发展阶段直接相关:

  • CRD版本特性限制:Kubernetes 1.9时期,CRD还处于apiextensions.k8s.io/v1beta1的早期试验阶段,metadata.generation字段的自动递增逻辑仅对Kubernetes内置资源(比如Deployment、StatefulSet)生效,自定义资源的Spec变更并不会触发这个字段的更新。这个特性是在后续版本(1.11+)才逐步完善并覆盖到CRD的。

  • 快速验证方式:你可以检查自己的CRD定义文件,看apiVersion字段是不是apiextensions.k8s.io/v1beta1——如果是的话,就完全符合该版本的行为表现。

  • 追踪Spec变更的替代方案:

    • 可以通过对比metadata.resourceVersion字段判断资源是否有变更(注意:该字段会在资源任何字段变更时更新,包括Status部分);
    • 在自定义资源的Spec中新增一个自定义版本标识字段(比如spec.version),更新资源时手动递增该值来追踪变更;
    • 如果业务允许,升级到Kubernetes 1.11及以上版本,从这个版本开始v1beta1的CRD也支持Generation随Spec变更自动递增,到CRD的v1版本后该特性完全稳定。

内容的提问来源于stack exchange,提问作者occia

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 03:50:44