在你自己的 Linux、Mac 和 Windows 机器上自托管 GitHub Actions runner,每个任务使用全新的容器、虚拟机或账户。
actions/actions-runner-controller
在 Kubernetes 上部署并自动伸缩 GitHub Actions 自托管 Runner 的控制器。
- Star
- 6,632
- Fork
- 1,506
- 未关闭 Issue
- 393
- 最近提交
- 5天前
这是什么?
Actions Runner Controller(ARC)是一个 Kubernetes Operator,用于运行和管理 GitHub Actions 的自托管 Runner。它可以创建 Runner 扩缩容组(runner scale sets),根据仓库、组织或企业中正在运行的 workflow 数量自动增减 Runner。
Runner 通常以临时的容器形式运行,因此新实例能快速启动和销毁,任务之间不会残留状态。ARC 通过 Helm 安装,部署在用于承载 Runner 的 Kubernetes 集群中。
该项目与 GitHub Actions 团队协作开发。较新的自动伸缩 Runner 扩缩容组由 GitHub 官方支持,旧的自动伸缩模式则由社区维护。
核心功能
- 01根据排队和运行中的 workflow 任务自动伸缩 Runner 扩缩容组。
- 02在 Kubernetes 上运行临时的、基于容器的 Runner。
- 03通过 Helm Chart 安装部署。
- 04支持在仓库、组织或企业级别注册 Runner。
适用场景
- 在自有集群上运行 CI 任务,替代 GitHub 托管的 Runner。
- 在高峰期扩容构建能力,空闲时自动缩容。
- 为每个任务使用全新容器隔离运行,保证构建环境干净。
快速上手
- 1
准备 Kubernetes 集群,并按 README 链接的快速入门指南使用 Helm 安装 ARC
- 2
按部署文档创建 runner scale set,并运行使用它的工作流
使用前须知
- 需要 Kubernetes 集群,不适用于没有 Kubernetes 的环境。
- 旧版自动扩缩模式仅由社区维护,而非 GitHub 官方维护。
收录于专题
标签
常见问题
- actions-runner-controller 是什么?
- 在 Kubernetes 上部署并自动伸缩 GitHub Actions 自托管 Runner 的控制器。 Actions Runner Controller(ARC)是一个 Kubernetes Operator,用于运行和管理 GitHub Actions 的自托管 Runner。它可以创建 Runner 扩缩容组(runner scale sets),根据仓库、组织或企业中正在运行的 workflow 数量自动增减 Runner。
- actions-runner-controller 可以免费使用吗?用的什么许可证?
- actions-runner-controller 以 Apache-2.0 许可证开源。用于商业产品前,请先确认许可证条款。
- actions-runner-controller 还在维护吗?
- 活跃维护中。actions-runner-controller 最近一次提交是在 2026年11月2日。
- actions-runner-controller 适合用来做什么?
- 在自有集群上运行 CI 任务,替代 GitHub 托管的 Runner。 在高峰期扩容构建能力,空闲时自动缩容。 为每个任务使用全新容器隔离运行,保证构建环境干净。
- actions-runner-controller 怎么安装和运行?
- 准备 Kubernetes 集群,并按 README 链接的快速入门指南使用 Helm 安装 ARC 按部署文档创建 runner scale set,并运行使用它的工作流
- 在哪里获取 actions-runner-controller?
- 源代码和安装说明在 GitHub 上:https://github.com/actions/actions-runner-controller
概要由 AI 根据项目 README 生成;GitHub 数据每日更新。
相关项目
一套 Kubernetes Operator,可自动化部署 LLM 推理、微调和 RAG 服务到 GPU 节点上。
为 Kubernetes 提供自动伸缩组件,可调整集群节点数量及 Pod 的 CPU、内存请求。
一款声明式 GitOps 持续交付工具,可将 Kubernetes 应用同步为 Git 仓库中定义的状态。
用于构建 Kubernetes Operator 的 Go 语言 SDK,提供高层 API、项目脚手架与代码生成。
用于构建 Kubernetes 控制器与 Operator 的 Go 库,是 Kubebuilder 和 Operator SDK 的底层基础。