Kubernetes 组件——控制器与调度器专栏导览

专栏定位

如果 API Server 是 Kubernetes 的”中枢神经”,那么控制器调度器就是 K8s 的”执行引擎”。K8s 的声明式模型意味着用户只描述”期望状态”(Desired State),而控制器负责持续协调(Reconcile)当前状态与期望状态的差异——这就是 K8s 最核心的运行机制:控制循环(Control Loop)

调度器(Scheduler)是一种特殊的控制器——它的职责是决定”Pod 应该运行在哪个节点上”。调度看似简单,但背后涉及多维度的约束求解:资源容量、亲和性/反亲和性、拓扑分散、污点容忍、优先级抢占。

本专栏从控制器模式的原理出发,深入 Deployment / StatefulSet / DaemonSet / Job 等内置控制器的工作机制,然后系统解析 Scheduler 的调度流程与算法,最后介绍如何通过 Operator 模式扩展 K8s 的控制能力。

前置知识架构原则与对象设计专栏(控制器模式、工作负载对象)+ API Server 专栏(List-Watch / Informer)。

目录

序号文章核心内容
0101 控制器模式与协调循环控制循环的本质(Observe → Diff → Act)、Level-triggered vs Edge-triggered、幂等性要求、乐观并发与冲突重试、Controller Manager 的架构
0202 Deployment 控制器深度解析Deployment → ReplicaSet → Pod 的三级结构、滚动更新的执行过程(maxSurge / maxUnavailable)、回滚机制(Revision 与 ReplicaSet 历史)、暂停与恢复
0303 StatefulSet 控制器深度解析有状态应用的核心需求(稳定标识、有序部署、持久存储)、Pod 命名规则与 Headless Service、PVC 模板与存储绑定、有序滚动更新与分区更新
0404 DaemonSet Job CronJob 控制器解析DaemonSet 的节点覆盖策略与滚动更新、Job 的并行模型与失败处理、CronJob 的调度语义与并发策略、TTL 清理
0505 Scheduler 调度流程与算法调度框架(Scheduling Framework)的插件化架构、预选(Filter)与优选(Score)阶段、资源请求与节点容量、亲和性/反亲和性、拓扑分散约束、污点与容忍、优先级与抢占
0606 Operator 模式与自定义控制器CRD + 自定义控制器 = Operator、controller-runtime 框架(Kubebuilder)、Reconciler 的编写模式、Leader Election、Status 子资源更新、Operator 的设计最佳实践

推荐阅读路径

  • 理解控制器本质:01 → 02(先原理后实例)
  • 有状态应用:01 → 03
  • 调度深入:05(可独立阅读)
  • K8s 扩展开发:01 → 06

关联专栏