Kubernetes控制器的通用工作模式(Reconcile Loop)【20260530】002篇
文章目录
- 0)先把你要观测的对象定位清楚
- ① Watch / API Server:List + Watch 建立“事件源”
- 它在干嘛
- 怎么看(是否健康、是否风暴)
- 能怎么优化(扩容/降耗)
- ② Informer / Reflector(本地缓存:Indexer/Store)
- 它在干嘛
- 怎么看(“缓存在不在、有没有同步、是不是穿透到 apiserver”)
- 能怎么优化(内存/CPU/吞吐)
- ③ 事件入队:WorkQueue(去重 / 削峰 / 重试)
- 它在干嘛
- 怎么看(“队列是不是堵了、是否在死循环重试”)
- 能怎么优化(扩容/削峰/防抖动)
- ④ Reconcile / Sync(核心对齐循环)
- 它在干嘛(你画的 ①~⑤)
- 怎么看(到底卡在哪一步)
- 可操作的扩容 & 优化清单(最重要一段)
- 来自韩工20年工作经验的建议”
下面把你那张图① Watch → Informer 缓存 → WorkQueue → Reconcile的每一步,拆成三件事:它在干嘛 / 你怎么“看” / 你能“做什么(扩容 & 优化)”。
0)先把你要观测的对象定位清楚
你的 Controller/Operator 通常跑成Deployment/StatefulSet/Pod(很多时候在kube-system或你自己的 ns):
kubectl get pods-A|grep-E"controller|operator|manager"# 例:kubebuilder 出的常用名kubectl-nYOUR_NS get deploy kubectl