本文介绍如何使用 Azure Kubernetes 服务 (AKS) 上的 Azure 文件部署和测试高可用性 GitHub Actions。
GitHub Actions 示例工作流
存储库在默认 GitHub 工作流文件夹中有三个示例工作负荷,用于测试自承载 ARC 运行程序:
-
dotnet-using-container.yml
:使用容器的 .NET 生成在运行程序本身上安装 .NET SDK 和还原/生成/发布应用程序。 -
dotnet-without-container.yml
:不使用容器的 .NET 生成使用工作流容器功能运行 .NET SDK 容器并在容器内的应用程序内部生成。 默认情况下,在此容器上装载 NuGet 缓存。 -
container-service-test.yml
:容器和服务测试工作流还使用容器功能创建 Ubuntu 容器和 Redis 服务。 这两个容器在同一 AKS Pod 上运行。 NuGet 缓存也默认在此容器上装载。
这三个工作流都有一个输入参数,用于在工作流的字段中使用 runs-on:
ARC 运行程序名称。 这是 ARC_RUNNER_SCALESET_NAME="arc-runner-set"
我们之前定义的变量。 为了便于测试,我们在三个工作流上使用此选项 workflow_dispatch:
仅在手动请求时运行这些工作流。 在存储库的“GitHub Actions”选项卡上,选择其中一个工作流并运行工作负荷。
工作流运行后,它会向 AKS 群集上运行的 ARC 请求运行程序。 为作业分配此运行程序(Kubernetes 上的 Pod)后,工作流将在那里运行以完成。 我们使用临时运行程序方法,因此运行工作流的 Pod 在末尾被销毁,并为下一个工作流运行创建一个新 Pod。
删除资源
准备就绪后,可以使用以下命令删除本指南中创建的所有资源:
# Delete ARC runners scale sets
helm delete "${ARC_RUNNER_SCALESET_NAME}" -n "${NAMESPACE_ARC_RUNNERS}" --wait
# Delete ARC runners scale set controller
helm delete "${ARC_CONTROLLER_NAME}" -n "${NAMESPACE_ARC_CONTROLLER}" --wait
# Delete Azure File share configurations
kubectl delete -f ./install/arc-runners-set-pv-pvc.yaml --wait
kubectl delete -f ./install/arc-runners-storage-class-files.yaml --wait
# Delete secrets
kubectl delete secret azure-storage-secret -n arc-runners --wait
kubectl delete secret ${ARC_RUNNER_GITHUB_SECRET_NAME} -n arc-runners --wait
# Delete container runner configmap pod spec
kubectl delete -f ./install/arc-runners-set-container-pod-spec.yaml --wait
# Delete namespaces
kubectl delete namespace ${NAMESPACE_ARC_RUNNERS}
kubectl delete namespace ${NAMESPACE_ARC_CONTROLLER}
后续步骤
若要详细了解如何在 Azure Kubernetes 服务(AKS)上部署开源软件,请参阅以下文章:
供稿人
Microsoft维护本文。 以下贡献者最初撰写了这篇文章:
- 豪尔赫·阿尔特里奥 | 高级云倡导者
- Jeff Patterson | 首席产品经理
- Rena Shah |高级产品经理
- 谢哈尔·辛格·索罗特 |Product Manager 2
- Erin Schaffer | 内容开发人员 2