Exercice : déployer un exemple d’application sur le cluster à l’aide de GitOps et Flux
Dans cet exercice, vous allez déployer une application Linux conteneurisée sur votre cluster AKS Edge Essentials avec Arc à l’aide de GitOps et Flux.
Dupliquer le dépôt GitHub de l’application de démonstration
Si vous n’avez pas encore de compte GitHub, créez-en un maintenant.
Accédez au dépôt Azure Arc Jumpstart Apps et dupliquez-le vers votre propre compte GitHub en sélectionnant Fork, puis Create fork.
Vérifiez que la duplication a fonctionné en accédant aux dépôts de votre compte et en sélectionnant le dépôt azure-arc-jumpstart-apps. L’URL du dépôt doit ressembler à ceci :
https://github.com/<your-github-username>/azure-arc-jumpstart-apps
Déployer l’application
Dans le Portail Azure, accédez à votre cluster AKS Edge Essentials avec Arc, puis sélectionnez GitOps sous Paramètres. Créons deux configurations : une au niveau du cluster et une au niveau de l’espace de noms.
Sélectionnez Créer et utilisez les valeurs suivantes pour établir la configuration au niveau du cluster :
Attribut Input Concepts de base Nom de la configuration config-nginx
Espace de noms ingress-nginx
Étendue Cluster Type Flux v2 Source Type de source Référentiel Git URL du dépôt <URL du dépôt dupliqué> Type de référence Branche Branche main Type de dépôt Public Intervalle de synchronisation 1 Délai d’expiration de la synchronisation 10 Kustomizations Kustomizations Sélectionnez Créer Nom de l’instance nginx
Chemin d’accès ./nginx/release
Intervalle de synchronisation 10 Délai d’expiration de la synchronisation 10 Élaguer Enabled Force Non activé Remarque
Attendez que
config-nginx
soit créé et visible sur votre Portail Azure GitOps avant de créer la configuration au niveau de l’espace de noms (si la conformité est en attente, vous pouvez passer à la création de la configuration suivante).Sélectionnez Créer et utilisez les valeurs suivantes pour établir la configuration au niveau du cluster :
Attribut Input Concepts de base Nom de la configuration config-helloarc
Espace de noms hello-arc
Étendue Espace de noms Type Flux v2 Source Type de source Référentiel Git URL du dépôt <URL du dépôt dupliqué> Type de référence Branche Branche main Type de dépôt Public Intervalle de synchronisation 1 Délai d’expiration de la synchronisation 10 Kustomizations Kustomizations Sélectionnez Créer Nom de l’instance app
Chemin d’accès ./hello-arc/releases/app
Intervalle de synchronisation 10 Délai d’expiration de la synchronisation 10 Élaguer Enabled Force Non activé Actualisez la table de configuration et patientez jusqu’à ce que les configurations soient installées et conformes.
Dans votre machine virtuelle, utilisez
kubectl
pour vérifier que le service est en cours d’exécution :kubectl get svc -n ingress-nginx kubectl get pods -n hello-arc
L’exemple de sortie suivant indique que le service est en cours d’exécution :
PS C:\akseeLearn> kubectl get svc -n ingress-nginx NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE ingress-nginx-controller LoadBalancer 10.43.136.240 192.168.0.4 80:31838/TCP,443:30386/TCP 18m ingress-nginx-controller-admission ClusterIP 10.43.11.51 <none> 443/TCP 18m PS C:\akseeLearn> kubectl get pods -n hello-arc NAME READY STATUS RESTARTS AGE hello-arc-7c66864f8d-662b7 1/1 Running 0 12m hello-arc-7c66864f8d-fdbkc 1/1 Running 0 12m hello-arc-7c66864f8d-prb2v 1/1 Running 0 12m
Pour afficher l’application, ouvrez un navigateur et accédez à l’adresse EXTERNAL-IP affectée au service
ingress-nginx-controller
. Dans l’exemple précédent, l’adresse IP affectée au service est 192.168.0.4.
Mettre à jour l’application
Nous avons configuré GitOps et Flux pour surveiller les modifications apportées à la branche main de votre dépôt dupliqué. Apportons une modification à l’application et examinons la réponse de GitOps.
Dans votre dépôt azure-arc-jumpstart-apps dupliqué, accédez à hello-arc > releases > app > hello-arc.yaml.
Apportez une modification à ce fichier YAML en sélectionnant Edit. Remplacez la valeur du paramètre replicaCount par 5. Remplacez le texte en regard de value par Deploying to AKS Edge Essentials GitOps!.
Commitez la modification en sélectionnant Commit changes..., puis Commit changes.
Utilisez
kubectl
pour afficher les anciens pods à l’arrêt et les nouveaux pods en ligne :kubectl get pods -n hello-arc -w
L’exemple de sortie suivant montre les anciens pods à l’arrêt et les nouveaux pods en ligne :
PS C:\akseeLearn> kubectl get pods -n hello-arc -w NAME READY STATUS RESTARTS AGE hello-arc-699dff9888-5mcjs 1/1 Running 0 19m hello-arc-699dff9888-qrsfw 1/1 Running 0 19m hello-arc-699dff9888-xm82r 1/1 Running 0 19m hello-arc-699dff9888-mpdxt 0/1 Pending 0 0s hello-arc-699dff9888-mpdxt 0/1 Pending 0 0s hello-arc-699dff9888-cvkgf 0/1 Pending 0 0s hello-arc-699dff9888-cvkgf 0/1 Pending 0 0s hello-arc-699dff9888-mpdxt 0/1 ContainerCreating 0 0s hello-arc-699dff9888-cvkgf 0/1 ContainerCreating 0 0s hello-arc-699dff9888-cvkgf 0/1 Running 0 1s hello-arc-699dff9888-mpdxt 0/1 Running 0 1s hello-arc-699dff9888-mpdxt 1/1 Running 0 2s hello-arc-699dff9888-cvkgf 1/1 Running 0 2s
Remarque
Étant donné que nous définissons l’intervalle de synchronisation sur 1 min lors de la création de la configuration, Flux extrait les modifications de GitHub toutes les minutes.
Actualisez l’application pour observer comment cette modification se reflète dans une mise à jour récurrente.
Nettoyer vos ressources Azure
Au cours de ce module, vous avez créé des ressources Azure. Si vous pensez ne plus avoir besoin de ces ressources, supprimez le groupe de ressources et le principal du service en exécutant les commandes az group delete et az ad sp delete dans Azure Cloud Shell :
az group delete --name "aksedge-training" --force-deletion-types Microsoft.Compute/virtualMachines
az ad sp delete --id "<your-service-principal-ID>"
Important
Pour éviter de cumuler des frais indésirables, vous devez supprimer les ressources et le principal de service Azure que vous avez utilisés dans ce module.