使用 ARC 在 Kubernetes 上扩展 GitHub Actions Runner

June 29, 2025

利用 Actions Runner Controller (ARC) 在 Kubernetes 上扩展 GitHub Actions 规模

在瞬息万变、日新月异的软件开发领域中,高效且可扩展的持续集成/持续交付(CI/CD)流水线是至关重要的。对于使用 GitHub Actions 的团队而言,管理自托管运行器(self-hosted runners)时常会在可扩展性、成本效益和运维开销方面遇到挑战。而这正是 Actions Runner Controller (ARC) 能够发挥革新作用的地方。

什么是 Actions Runner Controller (ARC)?

ARC 是一个创新的 Kubernetes 运算符(operator),它专为编排和自动扩展 GitHub Actions 的自托管运行器而设计。它使开发人员和 DevOps 团队能够突破静态运行器配置的限制,实现动态的、按需扩展。ARC 无需维护一个固定且始终在线的运行器池,而是允许您根据 GitHub Actions 工作流的需求,动态地创建和销毁运行器实例。

使用 ARC 的主要优势:

  • 自动扩展:ARC 能够创建“运行器扩缩集(runner scale sets)”,根据您的存储库、组织乃至整个企业的运行工作流数量,自动调整自托管运行器的数量。这意味着资源利用率最优化,并能显著降低云成本。
  • 瞬时运行器:通过利用容器技术,ARC 能够快速、干净地部署瞬时运行器实例(ephemeral runner instances)。每个工作流任务都可以在一个全新的、专用的运行器上执行,确保隔离性,并防止环境不一致或先前运行的遗留产物。
  • Kubernetes 原生:作为 Kubernetes 运算符,ARC 可以与您现有的 Kubernetes 集群无缝集成。通过标准 Kubernetes 工具和概念(如 Helm chart),部署和管理变得更加简单。
  • 成本效益:您只需为实际使用的计算资源付费。在活动量较低的时期,运行器会自动缩减,从而大幅削减闲置基础架构的成本。
  • 增强安全性:瞬时运行器通过减少攻击面来提高安全性。一旦任务完成,运行器便被终止,消除了可能被入侵的持久化环境。

ARC 的工作原理

要开始使用 ARC,通常涉及使用 Helm 将其部署到您的 Kubernetes 集群中。部署完成后,您可以定义连接到 GitHub 存储库、组织或企业的运行器扩缩集。当 GitHub Actions 工作流被触发时,ARC 会智能地在您的 Kubernetes 集群中配置新的运行器实例来处理工作负载。任务完成后,这些运行器可以自动缩减或终止,从而确保高效的资源管理。

一个协作的开源项目

ARC 充分展现了社区协作的力量。它由 GitHub Actions 团队与外部维护者和贡献者组成的专业社区共同积极开发和维护。这确保了持续的改进、及时的更新和强有力的支持,使其成为关键 CI/CD 基础设施的可靠解决方案。

开始使用及文档

如果您渴望尝试 ARC,一份全面的快速入门指南可帮助您通过几个简单的命令设置和配置您的第一个运行器扩缩集。如需深入了解,您可以在 docs.github.com 上找到详尽的文档,内容涵盖安装、认证、部署和高级配置。

无论您是希望优化 GitHub Actions 成本、提高自托管运行器群的可靠性,还是仅仅想要一个更具可扩展性的 CI/CD 解决方案,Actions Runner Controller 都提供了一种强大且务实的方法。拥抱动态扩展的效率,立即改变您的 GitHub Actions 工作流吧!

原创文章: 查看原文

分享本文