一个 Kubernetes 控制器与 CRD,用于管理隔离、有状态的单 Pod 沙箱,面向 AI 智能体运行时和强化学习场景。
kubernetes-sigs/controller-runtime
用于构建 Kubernetes 控制器与 Operator 的 Go 库,是 Kubebuilder 和 Operator SDK 的底层基础。
- Star
- 2,988
- Fork
- 1,332
- 未关闭 Issue
- 69
- 最近提交
- 3天前
这是什么?
controller-runtime 是一组用于编写 Kubernetes 控制器的 Go 库。控制器持续监听集群资源,并不断让资源的实际状态与 API 中声明的期望状态保持一致。该库提供这一模式所需的通用基础设施,包括运行控制器的 manager、串联 watch 与 reconcile 循环的 builder,以及读写对象的 client。
它是 Kubebuilder 和 Operator SDK 的底层运行时,这两个工具是创建新 Operator 项目的常用起点。直接用 Go 开发控制器的开发者通常会引入这些包,而不必手写 informer 和工作队列逻辑。版本与 Kubernetes 的次版本号对应,项目提供兼容性表格,列出每个 controller-runtime 版本所配套的 client-go 版本和最低 Go 版本。
核心功能
- 01manager 用于运行和协调多个控制器
- 02builder API 用于声明 watch 与 reconcile 逻辑
- 03带缓存的 client 用于读写 Kubernetes 对象
- 04支持 webhook 与 leader election
- 05提供版本与 client-go、Go 版本的兼容性对照
适用场景
- 用 Go 开发自定义 Kubernetes Operator
- 编写用于协调自定义资源(CRD)的控制器
- 在 Kubebuilder 生成的项目中扩展控制器逻辑
快速上手
- 1
从基于此库构建的 Kubebuilder 或 Operator SDK 开始(参见 Kubebuilder 快速入门)
使用前须知
- 项目保持零主版本号,并允许在次要版本之间引入破坏性变更。
- 每个次要版本对应特定的 client-go 版本和最低 Go 版本,需要与你的 Kubernetes 依赖保持匹配。
收录于专题
标签
常见问题
- controller-runtime 是什么?
- 用于构建 Kubernetes 控制器与 Operator 的 Go 库,是 Kubebuilder 和 Operator SDK 的底层基础。 controller-runtime 是一组用于编写 Kubernetes 控制器的 Go 库。控制器持续监听集群资源,并不断让资源的实际状态与 API 中声明的期望状态保持一致。该库提供这一模式所需的通用基础设施,包括运行控制器的 manager、串联 watch 与 reconcile 循环的 builder,以及读写对象的 client。
- controller-runtime 可以免费使用吗?用的什么许可证?
- controller-runtime 以 Apache-2.0 许可证开源。用于商业产品前,请先确认许可证条款。
- controller-runtime 还在维护吗?
- 活跃维护中。controller-runtime 最近一次提交是在 2026年11月5日。
- controller-runtime 适合用来做什么?
- 用 Go 开发自定义 Kubernetes Operator 编写用于协调自定义资源(CRD)的控制器 在 Kubebuilder 生成的项目中扩展控制器逻辑
- controller-runtime 怎么安装和运行?
- 从基于此库构建的 Kubebuilder 或 Operator SDK 开始(参见 Kubebuilder 快速入门)
- 在哪里获取 controller-runtime?
- 源代码和安装说明在 GitHub 上:https://github.com/kubernetes-sigs/controller-runtime
概要由 AI 根据项目 README 生成;GitHub 数据每日更新。
相关项目
用于构建 Kubernetes Operator 的 Go 语言 SDK,提供高层 API、项目脚手架与代码生成。
在 Kubernetes 上部署并自动伸缩 GitHub Actions 自托管 Runner 的控制器。
一个在 Kubernetes 上部署和管理 Ray 应用的 Operator,通过 RayCluster、RayJob 和 RayService 资源运行工作负载。
一个 Kubernetes Operator,用于部署和管理 K8sGPT,借助 AI 后端诊断集群问题,并可选择自动修复镜像拉取失败。
一套 Kubernetes Operator,可自动化部署 LLM 推理、微调和 RAG 服务到 GPU 节点上。