【发布时间】:2023-04-07 05:03:01
【问题描述】:
我正在开发一个 Kubernetes 控制器。此控制器的所需状态在 CRD-A 中捕获,然后它创建部署和状态集以实现实际状态。目前我正在使用服务器端应用来创建/更新这些部署和状态集。
控制器在 CRD-A 以及部署、statefulset 上建立监视。这是为了确保如果部署/状态集发生更改,则通知 reconcile() 并采取措施修复它。目前 reconcile() 总是调用服务器端 apply 来创建/更新,这会导致另一个监视事件(每个服务器端应用资源版本更改)导致重复/无限调用 reconcile()
我一直在考虑的一种方法是在部署/状态集上利用“生成”,即控制器将维护 (k8s 对象 -> 生成) 的内存映射并在 reconcile() 上比较此映射中的值索引的告密者缓存中存在的内容;你觉得这种方法有什么顾虑吗?是否有更好的替代方法来防止重复/无限 reconcile() 调用?
【问题讨论】:
标签: kubernetes