在 Azure Kubernetes 服务上部署和测试高可用性 GitHub Actions (AKS)

本文介绍如何使用 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