Déployer et tester des actions GitHub hautement disponibles sur Azure Kubernetes Service (AKS)

Dans cet article, vous allez apprendre à déployer et tester des actions GitHub hautement disponibles avec Azure Files sur Azure Kubernetes Service (AKS).

Exemples de flux de travail GitHub Actions

Le référentiel comporte trois exemples de charges de travail dans le dossier de workflow GitHub par défaut pour vous permettre de tester les exécuteurs ARC auto-hébergés :

  • dotnet-using-container.yml: Utilisez .NET Build à l’aide de conteneurs pour installer le Kit de développement logiciel (SDK) .NET, et pour restaurer, générer et publier l’application sur le runner lui-même.
  • dotnet-without-container.yml: La construction .NET sans conteneurs utilise la fonctionnalité de workflow pour exécuter un conteneur .NET SDK et construire l'application à l'intérieur du conteneur. La mise en cache NuGet est montée par défaut sur ce conteneur.
  • container-service-test.yml: flux de travail de test de conteneur et de service utilisant également la fonctionnalité conteneurs pour créer un conteneur Ubuntu et un service Redis. Les deux conteneurs s’exécutent sur le même pod AKS. La mise en cache NuGet est également montée par défaut sur ce conteneur.

Les trois flux de travail ont un paramètre d'entrée pour indiquer le nom du runner ARC à utiliser dans le champ runs-on: de votre flux de travail. Il s’agit de la ARC_RUNNER_SCALESET_NAME="arc-runner-set" variable que nous avons définie précédemment. Pour faciliter les tests, nous utilisons l’option workflow_dispatch: sur les trois flux de travail pour exécuter uniquement ces flux de travail lorsqu’ils sont demandés manuellement. Sous l’onglet GitHub Actions de votre référentiel, sélectionnez l’un des workflows et exécutez la charge de travail.

Une fois le flux de travail en cours d’exécution, il demande à un exécuteur arc s’exécutant sur le cluster AKS. Une fois que cet exécuteur, un pod sur Kubernetes, est alloué pour le travail, le flux de travail s’exécute là-bas pour terminer. Nous utilisons l’approche éphémère de l’exécuteur, de sorte que le pod exécutant le flux de travail est détruit à la fin et qu’un nouveau est créé pour l’exécution suivante du flux de travail.

Supprimer les ressources

Lorsque vous êtes prêt, vous pouvez supprimer toutes les ressources créées dans ce guide à l’aide des commandes suivantes :

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

Étapes suivantes

Pour en savoir plus sur le déploiement de logiciels open source sur Azure Kubernetes Service (AKS), consultez l’article suivant :

Contributeurs

Microsoft gère cet article. Il a été écrit initialement par les contributeurs suivants.

  • Jorge Arterio | Avocat principal du cloud
  • Jeff Patterson | Chef de produit principal
  • Rena Shah | Chef de produit senior
  • Shekar Singh Sorot | Product Manager 2
  • Erin Schaffer | Développeuse de contenu 2