Didacticiel : mettre à jour une application dans Azure Kubernetes Service (AKS)

Après avoir déployé une application dans Kubernetes, vous pouvez la mettre à jour en spécifiant une nouvelle image conteneur ou une nouvelle version de l’image. Une mise à jour se fait alors é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.

Dans ce didacticiel (le sixième d’une série de sept), l’exemple de l’application Azure Vote est mis à jour. Vous allez apprendre à effectuer les actions suivantes :

  • 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, une application a été empaquetée dans une image conteneur. Cette image a été chargée dans Azure Container Registry et vous avez créé un cluster AKS. L’application a ensuite été déployée sur le cluster AKS.

Un référentiel d’application a également été cloné, ce qui inclut le code source de l’application et un fichier Docker Compose préalablement créé utilisé dans ce didacticiel. Vérifiez que vous avez cloné le référentiel et changé des répertoires dans le répertoire cloné. Si vous n’avez pas effectué ces étapes et si vous souhaitez suivre cette procédure, commencez par Tutoriel 1 : Créer des images conteneur.

Ce didacticiel nécessite l’exécution de l’interface de ligne de commande 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

Apportons une modification à l’exemple d’application, puis mettons à jour la version déjà déployée dans 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 vi :

vi azure-vote/azure-vote/config_file.cfg

Remplacez les valeurs de VOTE1VALUE et VOTE2VALUE par d’autres valeurs, comme des 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. Dans vi, utilisez :wq.

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 indiquer à Docker Compose de recréer l’image d’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.

Screenshot showing an example of the updated container image Azure Voting App running locally opened in a local web browser

Les valeurs mises à jour fournies dans le fichier config_file.cfg s’affichent dans votre application en cours d’exécution.

Marquer et envoyer l’image

Pour utiliser correctement l’image mise à jour, balisez l’image azure-vote-front avec le nom du serveur de connexion de votre registre ACR. 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 <acrLoginServer> par le nom de votre serveur de connexion ACR ou par votre 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 le nom de votre serveur de connexion ACR.

Notes

Si vous rencontrez des problèmes en exécutant un push vers votre registre ACR, vérifiez 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 terminé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 :

Screenshot showing an example of the updated image Azure Voting App running in an AKS cluster opened in a local web browser.

Étapes suivantes

Dans ce tutoriel, nous avons mis à jour une application et nous avons déployé cette mise à jour sur votre cluster AKS. 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 didacticiel suivant pour découvrir comment mettre à niveau un cluster AKS vers une nouvelle version de Kubernetes.