Kubernetes控制器的通用工作模式(Reconcile Loop)【20260530】003篇

📅 2026/7/14 18:28:08 👁️ 阅读次数 📝 编程学习
Kubernetes控制器的通用工作模式(Reconcile Loop)【20260530】003篇

文章目录

  • K8s 控制器核心工作流程详解(Informer + 队列 + 调谐循环)
    • 一、整体流程总览
    • 二、模块1:API Server → Informer/Reflector(本地缓存)
      • 1. 组件角色
      • 2. 工作逻辑
      • 3. 设计目的(关键)
    • 三、模块2:WorkQueue 工作队列(去重/削峰/重试)
      • 1. 数据流向
      • 2. 核心能力(三大作用)
    • 四、模块3:Reconcile / Sync 调谐循环(控制器核心逻辑)
      • 前置说明
      • 分步解析
        • ① Get 当前实际状态
        • ② 对比 Spec(期望状态)
        • ③ 计算差异 → 生成动作(Act)
        • ④ 调用 API Server 执行操作
        • ⑤ 更新 Status 状态
      • 补充:循环特性
    • 五、全链路典型场景举例(Deployment 控制器)
    • 六、架构设计优势总结
    • 七、易混淆概念区分

K8s 控制器核心工作流程详解(Informer + 队列 + 调谐循环)

这张图是Kubernetes 控制器标准工作模型,也是所有控制器(Deployment、StatefulSet、Node 控制器等)的底层通用架构,下面分模块逐段拆解原理、作用、流程与核心逻辑。

一、整体流程总览

整体链路:API Server → Informer 本地缓存 → WorkQueue 任务队列 → Reconcile 调谐逻辑
核心思想:持续对比「期望状态」和「实际状态」,不断驱动集群收敛到期望状态(K8s 声明式 API 的核心)。


二、模块1:API Server → Informer/Reflector(本地缓存)

1. 组件角色

  • API Server:K8s 集群唯一入口,接收所有资源的增删改查请求,存储数据到 Etcd。
  • Reflector(反射器):Informer 的底层组件,长轮询监听API Server 的资源变化。
  • Informer:控制器的本地缓存层,本质是内存数据