Tutoriel : Mettre à jour une application dans AKS activée par Azure Arc

S’applique à : AKS sur Azure Stack HCI 22H2, AKS sur Windows Server

Après avoir déployé une application dans Kubernetes à l’aide d’AKS activé par Arc, vous pouvez la mettre à jour en spécifiant une nouvelle image conteneur ou une nouvelle version d’image. Vous devez effectuer la mise à jour étape par étape, afin que seule une partie du déploiement soit mise à jour en même temps. Cette mise à jour progressive permet à l’application de poursuivre son exécution pendant la mise à jour. Elle fournit également un mécanisme de restauration en cas d’échec du déploiement.

Ce tutoriel, partie six sur sept, décrit comment mettre à jour l’exemple d’application Azure Vote. Vous apprendrez à :

  • Mise à jour du code de l’application frontale
  • Création d’une image conteneur mise à jour
  • Envoi de l’image conteneur à Azure Container Registry
  • Déploiement de l’image conteneur mise à jour

Avant de commencer

Dans les tutoriels précédents, vous avez appris à :

  • Empaqueter une application dans une image conteneur et charger l’image sur Azure Container Registry.
  • Créez un cluster Kubernetes sur Azure Stack HCI et déployez l’application sur le cluster.
  • Clonez un référentiel d’application qui inclut le code source de l’application et un fichier Docker Compose préalablement créé que vous pouvez utiliser dans ce tutoriel.

Vérifiez que vous avez créé un clone du dépôt et modifié les répertoires dans le répertoire cloné. Si vous n’avez pas effectué ces étapes, commencez par le Tutoriel 1 : Créer des images conteneur.

Ce tutoriel nécessite l’exécution d’Azure CLI version 2.0.53 ou ultérieure. Exécutez az --version pour trouver la version. Si vous devez installer ou mettre à niveau, voir Installer Azure CLI.

Mettre à jour une application

Cette section explique comment apporter une modification à l’exemple d’application, puis mettre à jour la version déjà déployée sur votre cluster AKS. Veillez à être dans le répertoire azure-voting-app-redis cloné. Le code source de l’exemple d’application se trouve alors dans le répertoire azure-vote. Ouvrez le fichier config_file.cfg avec un éditeur, tel que le Bloc-notes :

notepad azure-vote/azure-vote/config_file.cfg

Modifiez les valeurs de VOTE1VALUE et VOTE2VALUE en valeurs différentes, telles que les couleurs. L’exemple suivant présente les valeurs mise à jour :

# UI Configurations
TITLE = 'Azure Voting App'
VOTE1VALUE = 'Blue'
VOTE2VALUE = 'Purple'
SHOWHOST = 'false'

Enregistrez et fermez le fichier.

Mettre à jour l’image conteneur

Pour recréer l’image front-end et tester l’application mise à jour, utilisez docker-compose. L’argument --build est utilisé pour recréer l’image de l’application :

docker-compose up --build -d

Tester localement l’application

Pour vous assurer que l’image conteneur mise à jour intègre vos modifications, ouvrez un navigateur web local et accédez à l’adresse http://localhost:8080.

Capture d’écran montrant un exemple de l’image conteneur mise à jour Application de vote Azure ouverte localement dans un navigateur web local

Les valeurs mises à jour fournies dans config_file.cfg sont affichées dans votre application en cours d’exécution.

Marquer et envoyer l’image

Pour utiliser correctement l’image mise à jour, étiquetez l’image azure-vote-front avec le nom du serveur de connexion de votre Azure Container Registry instance. Obtenez le nom du serveur de connexion à l’aide de la commande az acr list :

az acr list --resource-group myResourceGroup --query "[].{acrLoginServer:loginServer}" --output table

Utilisez docker tag pour ajouter une balise à l’image. Remplacez par <acrLoginServer> le nom du serveur de connexion du registre de conteneurs ou le nom d’hôte du registre public, puis mettez à jour la version de l’image vers v2, comme suit :

docker tag mcr.microsoft.com/azuredocs/azure-vote-front:v1 <acrLoginServer>/azure-vote-front:v2

À présent, utilisez docker push pour charger l’image dans votre registre. Remplacez <acrLoginServer> par votre nom de serveur de connexion Azure Container Registry.

Notes

Si vous rencontrez des problèmes d’envoi (push) à votre registre de conteneurs, assurez-vous que vous êtes toujours connecté. Exécutez la commande az acr login en utilisant le nom du registre Azure Container Registry que vous avez créé à l’étape Créer un registre Azure Container Registry. Par exemple : az acr login --name <azure container registry name>.

docker push <acrLoginServer>/azure-vote-front:v2

Déployer l’application mise à jour

Pour fournir une disponibilité maximale, vous devez exécuter plusieurs instances du pod d’application. Vérifiez le nombre d’instances front-end en cours d’exécution avec la commande kubectl get pods :

$ kubectl get pods

NAME                               READY     STATUS    RESTARTS   AGE
azure-vote-back-217588096-5w632    1/1       Running   0          10m
azure-vote-front-233282510-b5pkz   1/1       Running   0          10m
azure-vote-front-233282510-dhrtr   1/1       Running   0          10m
azure-vote-front-233282510-pqbfk   1/1       Running   0          10m

Si vous ne disposez pas de plusieurs pods de front-end, mettez à l’échelle le déploiement azure-vote-front comme suit :

kubectl scale --replicas=3 deployment/azure-vote-front

Pour mettre à jour l’application, utilisez la commande kubectl set. Mettez à jour <acrLoginServer> avec le nom du serveur de connexion ou le nom d’hôte de votre registre de conteneurs, puis spécifiez la version d’application v2 :

kubectl set image deployment azure-vote-front azure-vote-front=<acrLoginServer>/azure-vote-front:v2

Pour surveiller le déploiement, utilisez la commande kubectl get pod. À mesure que l’application mise à jour est déployée, vos pods sont arrêtés et recréés avec la nouvelle image conteneur :

kubectl get pods

L’exemple de sortie ci-après présente la terminaison des pods et les nouvelles instances en cours d’exécution à mesure que le déploiement progresse :

$ kubectl get pods

NAME                               READY     STATUS        RESTARTS   AGE
azure-vote-back-2978095810-gq9g0   1/1       Running       0          5m
azure-vote-front-1297194256-tpjlg  1/1       Running       0          1m
azure-vote-front-1297194256-tptnx  1/1       Running       0          5m
azure-vote-front-1297194256-zktw9  1/1       Terminating   0          1m

Tester l’application mise à jour

Pour visualiser l’application mise à jour, commencez par obtenir l’adresse IP externe du service azure-vote-front :

kubectl get service azure-vote-front

À présent, ouvrez un navigateur web à l’adresse IP de votre service :

Capture d’écran montrant un exemple de l’image mise à jour de l’application de vote Azure en cours d’exécution dans un cluster Kubernetes ouvert dans un navigateur web local.

Étapes suivantes

Dans ce tutoriel, vous avez mis à jour une application et déployé cette mise à jour sur votre cluster Kubernetes. Vous avez appris à :

  • Mise à jour du code de l’application frontale
  • Création d’une image conteneur mise à jour
  • Envoi de l’image conteneur à Azure Container Registry
  • Déploiement de l’image conteneur mise à jour

Passez au tutoriel suivant pour apprendre à mettre à niveau un cluster vers une nouvelle version de Kubernetes.