先决条件
若要使用 ARC,请确保具有以下项。
-
一个 Kubernetes 群集
- 对于托管云环境,可以使用 AKS。 有关详细信息,请参阅 Azure 文档中的 Azure Kubernetes 服务。
- 对于本地设置,可以使用 minikube 或 kind。 有关详细信息,请参阅 minikube 文档中的 minikube start 和 kind 文档中的 kind。
-
Helm 3
- 有关详细信息,请参阅 Helm 文档中的安装 Helm。
-
虽然不需要部署 ARC,但我们建议在将 ARC 部署到生产工作流中之前,确保已实现从控制器、侦听器和临时运行器中收集和保留日志的方法。
安装操作运行器控制器
-
若要在群集中安装运算符和自定义资源定义 (CRD),请执行以下操作。
- 在 Helm 图表中,将
NAMESPACE值更新为希望创建运算符 Pod 的位置。 此命名空间必须允许访问 Kubernetes API 服务器。 - 安装 Helm 图表。
以下示例将安装最新版的图表。 若要安装特定版本,可以将
--version参数与要安装的图表版本一起传递。 可以在 GitHub 容器注册表中找到发布列表。Bash 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 配置选项,请参阅 ARC 文档中的
values.yaml。 - 在 Helm 图表中,将
-
若要使 ARC 能够对 GitHub 进行身份验证,请生成 personal access token (classic)。 有关详细信息,请参阅“向 GitHub API 验证 ARC 身份”。
配置运行器规模集
-
要配置运行器规模集,请使用 ARC 配置中的值在终端中运行以下命令。
运行命令时,请记住以下事项。
-
仔细更新
INSTALLATION_NAME值。 在工作流中,将使用安装名称作为runs-on的值。 有关详细信息,请参阅“GitHub Actions 的工作流语法”。 -
将
NAMESPACE值更新为希望创建运行器 Pod 的位置。 -
将
GITHUB_CONFIG_URL设置为存储库、组织或企业的 URL。 这是运行器将属于的实体。 -
设置为
GITHUB_PATGitHub personal access token,其中包含repo``manage_runners:org存储库和组织运行程序的范围以及manage_runners:enterprise企业运行程序的范围。 -
此示例命令安装最新版 Helm 图表。 若要安装特定版本,可以将
--version参数与要安装的图表版本一起传递。 可以在 GitHub 容器注册表中找到发布列表。注意
- 作为安全最佳做法,请在与包含运算符 Pod 的命名空间不同的命名空间中创建运行器 Pod。
- 从安全性角度而言,最佳做法是创建 Kubernetes 机密并传递机密引用。 通过 CLI 以纯文本传递机密可能会产生安全风险。 有关详细信息,请参阅“使用 Actions Runner Controller 部署运行程序规模集”。
Bash INSTALLATION_NAME="arc-runner-set" NAMESPACE="arc-runners" GITHUB_CONFIG_URL="https://github.com/<your_enterprise/org/repo>" GITHUB_PAT="<PAT>" helm install "${INSTALLATION_NAME}" \ --namespace "${NAMESPACE}" \ --create-namespace \ --set githubConfigUrl="${GITHUB_CONFIG_URL}" \ --set githubConfigSecret.github_token="${GITHUB_PAT}" \ oci://ghcr.io/actions/actions-runner-controller-charts/gha-runner-scale-setINSTALLATION_NAME="arc-runner-set" NAMESPACE="arc-runners" GITHUB_CONFIG_URL="https://github.com/<your_enterprise/org/repo>" GITHUB_PAT="<PAT>" helm install "${INSTALLATION_NAME}" \ --namespace "${NAMESPACE}" \ --create-namespace \ --set githubConfigUrl="${GITHUB_CONFIG_URL}" \ --set githubConfigSecret.github_token="${GITHUB_PAT}" \ oci://ghcr.io/actions/actions-runner-controller-charts/gha-runner-scale-set有关其他 Helm 配置选项,请参阅 ARC 文档中的
values.yaml。
-
-
从终端运行以下命令,检查安装情况。
Bash helm list -A
helm list -A此时会看到类似下面的输出。
NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION arc arc-systems 1 2023-04-12 11:45:59.152090536 +0000 UTC deployed gha-runner-scale-set-controller-0.4.0 0.4.0 arc-runner-set arc-runners 1 2023-04-12 11:46:13.451041354 +0000 UTC deployed gha-runner-scale-set-0.4.0 0.4.0 -
要检查管理器 Pod,请在终端中运行以下命令。
Bash kubectl get pods -n arc-systems
kubectl get pods -n arc-systems如果所有内容都已成功安装,Pod 的状态将显示为“正在运行”。
NAME READY STATUS RESTARTS AGE arc-gha-runner-scale-set-controller-594cdc976f-m7cjs 1/1 Running 0 64s arc-runner-set-754b578d-listener 1/1 Running 0 12s
如果安装未成功,请参阅“排查 Actions Runner Controller 的错误”以获取故障排除信息。
使用运行器规模集
现在,你将创建并运行一个简单的测试工作流,该工作流使用运行器规模集运行器。
-
在存储库中,创建类似于以下示例的工作流。
runs-on值应与安装自动缩放运行器集时使用的 Helm 安装名称匹配。有关将工作流添加到仓库的详细信息,请参阅“GitHub Actions 快速入门”。
YAML name: Actions Runner Controller Demo on: workflow_dispatch: jobs: Explore-GitHub-Actions: # You need to use the INSTALLATION_NAME from the previous step runs-on: arc-runner-set steps: - run: echo "🎉 This job uses runner scale set runners!"name: Actions Runner Controller Demo on: workflow_dispatch: jobs: Explore-GitHub-Actions: # You need to use the INSTALLATION_NAME from the previous step runs-on: arc-runner-set steps: - run: echo "🎉 This job uses runner scale set runners!" -
将工作流添加到存储库后,请手动触发工作流。 有关详细信息,请参阅“手动运行工作流”。
-
若要查看在工作流运行时创建的运行器 Pod,请从终端运行以下命令。
Bash kubectl get pods -n arc-runners -w
kubectl get pods -n arc-runners -w成功的输出与以下内容类似。
NAMESPACE NAME READY STATUS RESTARTS AGE arc-runners arc-runner-set-rmrgw-runner-p9p5n 1/1 Running 0 21s
后续步骤
Actions Runner Controller 可以帮助你有效地管理 GitHub Actions 运行器。 准备好开始了吗? 以下是一些有用的资源,可帮助你对 ARC 执行后续操作:
- 有关详细的身份验证信息,请参阅“向 GitHub API 验证 ARC 身份”。
- 有关在工作流中使用 ARC 运行器的帮助,请参阅“在工作流中使用 Actions Runner Controller 运行器”。
- 有关部署信息,请参阅“使用 Actions Runner Controller 部署运行程序规模集”。