Wdrażanie i testowanie funkcji GitHub Actions o wysokiej dostępności w usłudze Azure Kubernetes Service (AKS)

Z tego artykułu dowiesz się, jak wdrożyć i przetestować funkcję GitHub Actions o wysokiej dostępności za pomocą usługi Azure Files w usłudze Azure Kubernetes Service (AKS).

Przykładowe przepływy pracy funkcji GitHub Actions

Repozytorium zawiera trzy przykładowe obciążenia w domyślnym folderze przepływu pracy GitHub do przetestowania własnych samodzielnie hostowanych modułów uruchamiających ARC.

  • dotnet-using-container.yml: Budowanie .NET przy użyciu kontenerów instaluje .NET SDK i przywraca, kompiluje oraz publikuje aplikację na samej maszynie uruchamiającej.
  • dotnet-without-container.yml: Kompilacja platformy .NET bez kontenerów używa funkcji kontenera przepływu pracy do uruchamiania kontenera zestawu SDK platformy .NET i kompilowania wewnątrz aplikacji wewnątrz kontenera. Buforowanie nuGet jest instalowane domyślnie w tym kontenerze.
  • container-service-test.yml: Przepływy pracy testowania kontenerów i usług również używają funkcji kontenerów do utworzenia kontenera z Ubuntu oraz usługi Redis. Oba kontenery działają na tym samym Podzie AKS. Buforowanie nuGet jest również instalowane domyślnie w tym kontenerze.

Wszystkie trzy przepływy pracy mają parametr wejściowy dla nazwy modułu uruchamiającego ARC, który ma być używany w runs-on: polu przepływu pracy. Jest to zmienna, która została wcześniej zdefiniowana ARC_RUNNER_SCALESET_NAME="arc-runner-set" . Aby ułatwić testowanie, użyjemy workflow_dispatch: opcji dla trzech przepływów pracy, aby uruchamiać te przepływy pracy tylko wtedy, gdy są wymagane ręcznie. Na karcie GitHub Actions w repozytorium wybierz jeden z przepływów pracy i uruchom go.

Po uruchomieniu przepływu pracy żąda uruchomienia runnera do ARC działającego w klastrze AKS. Gdy ten moduł uruchamiający, zasobnik na platformie Kubernetes, zostanie przydzielony do zadania, przepływ pracy zostanie uruchomiony w tym miejscu do ukończenia. Używamy podejścia modułu uruchamiającego efemerycznego, więc zasobnik z uruchomionym przepływem pracy jest niszczony na końcu, a nowy zostanie utworzony na potrzeby następnego uruchomienia przepływu pracy.

Usuwanie zasobów

Gdy wszystko będzie gotowe, możesz usunąć wszystkie zasoby utworzone w tym przewodniku przy użyciu następujących poleceń:

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

Dalsze kroki

Aby dowiedzieć się więcej na temat wdrażania oprogramowania typu open source w usłudze Azure Kubernetes Service (AKS), zobacz następujący artykuł:

Współautorzy

Firma Microsoft utrzymuje ten artykuł. Następujący autorzy pierwotnie napisali ten tekst:

  • Jorge Arterio | Starszy ambasador chmury
  • Jeff Patterson | Główny menedżer produktu
  • Rena Shah | Starszy menedżer produktu
  • Shekhar Singh Sorot | Menedżer produktu 2
  • Erin Schaffer | Content Developer 2