使用 Actions Runner Controller (ARC)
本文提供了在 Kubernetes 群集中设置 ARC 并配置 Dependabot 以在自托管运行器上运行的分步说明。 本文内容:
- 包含 ARC 和 Dependabot 集成的概述。
- 使用 Helm 脚本提供详细的安装和配置步骤。
什么是 ARC?
Actions Runner Controller 是一个 Kubernetes 控制器,用于将自托管的 GitHub Actions 作为 Kubernetes Pod 进行管理。 该控制器能够根据工作流动态缩放并编排运行器,从而更好地利用资源并与 Kubernetes 环境集成。 请参阅“Actions Runner Controller”。
ARC 上的 Dependabot
可以在由 ARC 管理的 Kubernetes 群集中运行 Dependabot 的自托管 GitHub Actions 运行器。 这使得 Dependabot 作业具备自动扩展、工作负载隔离和更好的资源管理功能,确保依赖项更新能够在组织内部受控的基础设施上高效运行,并与 GitHub Actions 无缝集成。
在本地环境中为 Dependabot 设置 ARC
先决条件
- 一个 Kubernetes 群集
- 对于托管云环境,可以使用 Azure Kubernetes 服务 (AKS)。
- 对于本地设置,可以使用 minikube。
- Helm
- Kubernetes 的包管理器。
设置 ARC
-
安装 ARC。 有关详细信息,请参阅“Actions Runner 控制器入门”。
-
为 ARC 设置创建一个工作目录,并创建一个 shell 脚本文件(例如
helm_install_arc.sh)来安装最新版本的 ARC。Bash mkdir ARC touch helm_install_arc.sh chmod 755 helm_install_arc.shmkdir ARC touch helm_install_arc.sh chmod 755 helm_install_arc.sh -
使用此用于安装 ARC 的 Bash 脚本编辑
helm_install_arc.sh。Text NAMESPACE="arc-systems" helm install arc \ --namespace "${NAMESPACE}" \ --create-namespace \ oci://ghcr.io/actions/actions-runner-controller-charts/gha-runner-scale-set-controllerNAMESPACE="arc-systems" helm install arc \ --namespace "${NAMESPACE}" \ --create-namespace \ oci://ghcr.io/actions/actions-runner-controller-charts/gha-runner-scale-set-controller -
执行
helm_install_arc.sh脚本文件。./helm_install_arc.sh -
接下来,需要配置运行器规模集。 首先,创建并编辑一个包含以下 Bash 脚本的文件。
Bash touch arc-runner-set.sh chmod 755 arc-runner-set.sh
touch arc-runner-set.sh chmod 755 arc-runner-set.shText INSTALLATION_NAME="dependabot" NAMESPACE="arc-runners" GITHUB_CONFIG_URL=REPO_URL GITHUB_PAT=PAT helm install "${INSTALLATION_NAME}" \ --namespace "${NAMESPACE}" \ --create-namespace \ --set githubConfigUrl="${GITHUB_CONFIG_URL}" \ --set githubConfigSecret.github_token="${GITHUB_PAT}" \ --set containerMode.type="dind" \ oci://ghcr.io/actions/actions-runner-controller-charts/gha-runner-scale-setINSTALLATION_NAME="dependabot" NAMESPACE="arc-runners" GITHUB_CONFIG_URL=REPO_URL GITHUB_PAT=PAT helm install "${INSTALLATION_NAME}" \ --namespace "${NAMESPACE}" \ --create-namespace \ --set githubConfigUrl="${GITHUB_CONFIG_URL}" \ --set githubConfigSecret.github_token="${GITHUB_PAT}" \ --set containerMode.type="dind" \ oci://ghcr.io/actions/actions-runner-controller-charts/gha-runner-scale-set -
执行
arc-runner-set.sh脚本文件。Bash ./arc-runner-set.sh
./arc-runner-set.sh
注意
- 运行器规模集的安装名称必须为
dependabot,才能将 Dependabot 作业定向到该运行器。 - 必须配置
containerMode.type="dind",运行器才能连接到 Docker 守护程序。 - 如果创建了组织级或企业级的运行器,则应为 Personal Access Token (PAT) 提供相应的权限范围。
- 可以创建 personal access token (classic) (PAT)。 根据你创建的是仓库级、组织级还是企业级的运行器规模集,令牌应具有相应的范围。
- 仓库级:repo****
- 组织级:admin:org****
- 企业级:admin:enterprise****
有关创建 personal access token (classic) 的信息,请参阅“管理个人访问令牌”。
添加运行器组
运行器组用于控制可以访问运行器规模集的组织或仓库。 要将运行程序规模集添加到运行程序组,前提是已创建运行程序组。
有关创建 runner 组的信息,请参阅“使用组管理对自托管运行程序的访问”。
别忘了在 Helm 图表的运行器规模集配置中添加以下设置。
--set runnerGroup="<Runner group name>" \
--set runnerGroup="<Runner group name>" \
检查你的安装
-
检查安装。
Bash helm list -A
helm list -A输出:
➜ ARC git:(master) ✗ helm list -A NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION arc arc-systems 1 2025-04-11 14:41:53.70893 -0500 CDT deployed gha-runner-scale-set-controller-0.11.0 0.11.0 arc-runner-set arc-runners 1 2025-04-11 15:08:12.58119 -0500 CDT deployed gha-runner-scale-set-0.11.0 0.11.0 dependabot arc-runners 1 2025-04-16 21:53:40.080772 -0500 CDT deployed gha-runner-scale-set-0.11.0 -
检查使用此命令的管理器 pod。
Bash kubectl get pods -n arc-systems
kubectl get pods -n arc-systems输出:
➜ ARC git:(master) ✗ kubectl get pods -n arc-systems NAME READY STATUS RESTARTS AGE arc-gha-rs-controller-57c67d4c7-zjmw2 1/1 Running 8 (36h ago) 6d9h arc-runner-set-754b578d-listener 1/1 Running 0 11h dependabot-754b578d-listener 1/1 Running 0 14h
设置 Dependabot
-
在 GitHub 上,导航到存储库的主页面。1. 在仓库名称下,单击 “Settings”****。 如果看不到“设置”选项卡,请选择“”下拉菜单,然后单击“设置”。
1. 在边栏的“Security”部分中,单击“ Advanced Security”****。
-
在“Dependabot”下,滚动到“Dependabot on Action Runners”,然后针对“Dependabot on self-hosted runners”,请选择“Enable”****。
触发 Dependabot 运行
设置 ARC 后,即可开始 Dependabot 运行。
-
在 GitHub 上,导航到存储库的主页面。
-
在仓库名称下,单击 “Insights”选项卡****。
-
在左侧边栏中,单击“依赖项关系图”。

-
在“依赖项关系图”下,单击“Dependabot”。
-
在相关的清单文件名称的右侧,单击“Recent update jobs”****。
-
如果最近没有针对该清单文件的更新作业,请单击“Check for updates”以重新运行 Dependabot 版本更新作业,并检查该生态系统中的依赖项是否有可用更新****。
查看生成的 ARC 运行器
你可以查看为 Dependabot 作业创建的 ARC 运行器
请前往存储库 1. 在 GitHub 上,导航到存储库的主页面。 然后选择 "操作" 选项卡 1. 在仓库名称下,单击“ Actions”****。

-
在左侧边栏中,单击“Runners”****。
-
在“Runners”下,单击“Self-hosted runners”,即可查看该仓库中可用的所有运行器列表****。 你将看到为该作业临时创建的 dependabot 运行器。
还可以通过在终端执行以下命令,在你的 Kubernetes 群集中查看同一个由 Dependabot 创建的运行器 Pod。
Text ➜ ARC git:(master) ✗ kubectl get pods -n arc-runners NAME READY STATUS RESTARTS AGE dependabot-sw8zn-runner-4mbc7 2/2 Running 0 46s➜ ARC git:(master) ✗ kubectl get pods -n arc-runners NAME READY STATUS RESTARTS AGE dependabot-sw8zn-runner-4mbc7 2/2 Running 0 46s
此外,你可以验证以下内容:
-
日志:通过检查运行器名称和计算机名称进行验证。 请参阅“查看 Dependabot 作业日志”。

-
版本更新的拉取请求:由仓库的“Pull requests”选项卡中的 Dependabot 作业创建****。