Distribuera och testa GitHub Actions med hög tillgänglighet i Azure Kubernetes Service (AKS)

I den här artikeln får du lära dig hur du distribuerar och testar GitHub Actions med hög tillgänglighet med Azure Files i Azure Kubernetes Service (AKS).

GitHub Actions-exempelarbetsflöden

Lagringsplatsen har tre exempelarbetsbelastningar i standardmappen för GitHub-arbetsflödet så att du kan testa arc-löparna med egen värd:

  • dotnet-using-container.yml: .NET Build med containers installerar .NET SDK och återställer/skapar/publicerar program på runnern själv.
  • dotnet-without-container.yml: .NET Build utan containrar använder funktionen för arbetsflödescontainer för att köra en .NET SDK-container och skapa inuti programmet i containern. NuGet-cachelagring monteras som standard på den här containern.
  • container-service-test.yml: Testningsarbetsflöden för Container och Service Test använder även containerfunktionen för att skapa en Ubuntu-container och en Redis-tjänst. Båda containrarna körs på samma AKS-kluster. NuGet-cachelagring monteras också som standard på den här containern.

Alla tre arbetsflödena har en indataparameter för ARC-löparnamn som ska användas i runs-on:-fältet i ditt arbetsflöde. Det här är den ARC_RUNNER_SCALESET_NAME="arc-runner-set" variabel som vi definierade tidigare. För att underlätta testningen workflow_dispatch: använder vi alternativet för de tre arbetsflödena för att endast köra dessa arbetsflöden när det begärs manuellt. På fliken GitHub Actions på lagringsplatsen väljer du ett av arbetsflödena och kör arbetsbelastningen.

När arbetsflödet körs begär det en löpare till ARC som körs i AKS-klustret. När den här löparen, en pod på Kubernetes, har allokerats för jobbet körs arbetsflödet där till slutförande. Vi använder den flyktiga runner-metoden, så podden som exekverar arbetsflödet bryts ner i slutet och en ny skapas för nästa arbetsflödeskörning.

Ta bort resurserna

När du är klar kan du ta bort alla resurser som skapats i den här guiden med hjälp av följande kommandon:

# 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} 

Nästa steg

Mer information om hur du distribuerar programvara med öppen källkod i Azure Kubernetes Service (AKS) finns i följande artikel:

Bidragsgivare

Microsoft ansvarar för den här artikeln. Följande deltagare skrev den ursprungligen:

  • Jorge Arterio | Senior molnrådgivare
  • Jeff Patterson | Principal Product Manager
  • Rena Shah | Senior Product Manager
  • Shekhar Singh Sorot | Product Manager 2
  • Erin Schaffer | Innehållsutvecklare 2