llm-wiki wiki · entities 2026-09-22

controller-runtime 是现代 Kubernetes controller 的通用库,封装 Manager、cache、client、reconcile、webhook、envtest 等生产控制器骨架。 详见 src-controller-runtime-architecture。

证据说明:本次官方默认分支快照为 6ab2188a1fb1,该 commit 不代表 release。src-controller-runtime-architecture 保留 2026-06-14 的 raw-backed Source 快照;当前跨项目证据与职责图见 k8s-core-controller-map。

在 M5-A Controller 地图中的位置

controller-runtime 在 client-go 基础上组合 Manager、Cache、Client、Controller/Reconciler 与 Webhook,并提供 envtest 测试支持,承担运行时框架职责。kubebuilder 负责作者工作流与项目脚手架,controller-tools 负责 CRD 等资产生成;controller-runtime 本身不承担这两类生成工作。三者的组合关系与控制循环见 k8s-core-controller-map。

架构边界

client-go 是底层机制;controller-runtime 是现代 operator 工程默认抽象;kubebuilder 在其上做项目脚手架。

什么时候用

场景 判断
需要 Operator SDK 能力 适合,controller-runtime 正是这一层的代表项目。
需要和 Kubernetes API / controller / runtime 集成 适合,它的主要价值来自 Kubernetes-native 工作流。
需要替代相邻层全部职责 不适合,应和 kubernetes, model-serving-operator, declarative-agent-management 组合。

核心组件

选型提示

把 controller-runtime 放在 Operator SDK 维度评估:先看它输入什么对象、输出什么对象,再看它是否会进入请求路径、调度路径、节点路径或 CI/实验路径。这个边界比 star 数更能决定它是否适合当前平台。