使用 Actions Runner Controller (ARC)
本文提供了有关在 Kubernetes 群集上设置 ARC 并将 Dependabot 配置为在自托管操作运行器上运行的分步说明。 本文内容:
- 包含 ARC 和 Dependabot 集成概述。
- 使用 Helm 脚本提供详细的安装和配置步骤。
什么是 ARC?
Actions Runner Controller是一个 Kubernetes 控制器,用于将自托管的 GitHub Actions 作为 Kubernetes Pod 进行管理。 该控制器能够根据工作流动态缩放并编排运行器,从而更好地利用资源并与 Kubernetes 环境集成。 请参阅“操作运行器控制器”。
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 上,导航到存储库的主页面。
-
在仓库名称下,单击 “Settings”****。 如果看不到“设置”选项卡,请选择“”下拉菜单,然后单击“设置”。

-
在边栏的“Security”部分中,单击“ Advanced Security”****。
-
在“Dependabot”下,滚动到“操作运行器上的 Dependabot”,然后对“自托管运行器上的 Dependabot”选择启用。
触发 Dependabot 运行
您现在设置了 ARC,可以启动 Dependabot 运行。
-
在 GitHub 上,导航到存储库的主页面。
-
在仓库名称下,单击 “Insights”选项卡****。
-
在左侧边栏中,单击“依赖项关系图”。

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

-
在左侧边栏中,单击“Runners”****。
-
在“Runners”下,单击“Self-hosted runners”,即可查看该仓库中可用的所有运行器列表****。 你将看到为该作业临时创建的 dependabot 运行器。

还可以通过在终端执行以下命令,在你的 Kubernetes 群集中查看同一个由 Dependabot 创建的运行器 Pod。
➜ 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 作业创建****。