Kubernetes 控制器(Controller)详解【20260530】001篇

Kubernetes 控制器(Controller)详解【20260530】001篇

文章目录

  • Kubernetes 控制器(Controller)详解
    • 一、控制器是什么?——核心思想
    • 二、控制器的通用工作模式(Reconcile Loop)
      • 每一步的含义
      • 两个必须遵守的设计铁律
    • 三、控制器在集群架构中的位置
    • 四、内置工作负载控制器详解
      • 1. ReplicaSet(RS)—— 副本守护者
      • 2. Deployment —— 无状态应用的"标准答案"
      • 3. StatefulSet —— 有状态应用的专用控制器
      • 4. DaemonSet —— 每个节点一个(节点级守护进程)
      • 5. Job —— 一次性任务
      • 6. CronJob —— 定时任务(基于 Job)
      • 五、不只是 Workload —— 其他关键内置控制器
    • 六、控制器底层实现机制(Informer + WorkQueue 模式)
      • Informer 做了什么?
      • Reconcile 的典型骨架(伪代码)
    • 七、自定义控制器与 Operator 模式
      • 公式
      • 工作流程
      • 开发工具链
      • CRD 的最小示意
    • 八、一张图总览:从"你写 YAML"到"Pod 跑起来"
    • 九、常见易混点速查

Kubernetes 控制器(Controller)详解


一、控制器是什么?——核心思想

Kubernetes 的控制器是整个系统"自愈能力"和"自动化运维"的基石。它的本质可以用一句话概括:

控制器就是一个永不停止的控制循环(Control Loop / Reconciliation Loop),持续驱动集群的「实际状态」向「期望状态」收敛。

经典比喻——恒温器

你设定温度(Desired State) → 温控器读取房间实际温度(Actual State) → 对比差异,决定开/关空调 → 循环往复,直到实际 == 期望

K8s 控制器做的事完全一样,只不过"温度"变成了Pod 副本数、Job 完成状态、Node 健康状态……,而"开空调"变成了通过 API Server 创建/删除 Pod、更新对象状态等


二、控制器的通用工作模式(Reconcile Loop)

所有 K8s 控制器(内置 + 自定义)共享同一套骨架:

┌──────