Kubernetes 对象版本控制 ResourceVersion 和 Generation 区别
实现 operator需要 监听资源变化,在 如何判断kubernetes资源的变化 有了疑问,与kubernetes资源对象相关的属性中,有两个标记版本。
ResourceVersion:
kubernetes所有资源对象都有此属性
在每次写入时发生变化,用于乐观并发控制
status 改变, label/annotation 改变, 其他不想关的改变
Generation
kubernetes部分资源对象有此属性(如:service 就没有)
只有 spec 发生变化才会递增,从 1 开始
还有一个字段:observedGeneration
一些对象的 status 字段 还会有一个 observedGeneration 子字段,供控制器保留最后操作的 generation 。
编写 自定义控制器时 ,判断 crd 的改变,一般用 Generation 比对 新、旧 crd,因为 resourceVersion 的改变可能是我们不需要关注的。
参考博文:
官网解释: resourceVersion and generation.
What is the difference between a resourceVersion and a generation?
共 0 条评论