Kubernetes v1.36:控制器的陈旧性缓解与可观测... 笔记

Kubernetes v1.36:控制器的陈旧性缓解与可观测性

Kubernetes 控制器可能因数据陈旧而出现问题,导致基于过时的缓存数据执行错误或延迟的操作。数据陈旧源于控制器的本地缓存与集群的实际状态不同步。Kubernetes v1.36 引入了多项功能以缓解数据陈旧问题并优化控制器行为。这些改进包括在 client-go 中实现原子性的 FIFO 处理,从而提升队列的一致性。kube-controller-manager 已在 DaemonSet 和 ReplicaSet 等关键控制器中集成了 client-go 的这些改进。这些控制器现在会在执行操作前检查缓存资源的版本,避免对陈旧数据采取行动。Informer 作者可以使用 ConsistencyStore 来跟踪和管理资源版本,从而在其控制器中缓解数据陈旧问题。ConsistencyStore 提供了记录写入、检查缓存就绪状态以及清除陈旧对象条目等功能。此外,Kubernetes v1.36 还新增了用于监控控制器健康状态的指标,其中包括因数据陈旧而跳过的同步次数。client-go 现在也会发出指标,以暴露共享 Informer 的最新资源版本。Kubernetes 团队计划将这些缓解数据陈旧的功能扩展至更多控制器,并将其集成到 controller-runtime 中。团队欢迎用户反馈,并期待未来的持续发展。