Didacticiel : Mettre à jour une application dans Azure Kubernetes Service (AKS)Tutorial: Update an application in 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.After an application has been deployed in Kubernetes, it can be updated by specifying a new container image or image version. Une mise à jour se fait alors étape par étape, afin que seule une partie du déploiement soit mise à jour en même temps.An update is staged so that only a portion of the deployment is updated at the same time. Cette mise à jour progressive permet à l’application de poursuivre son exécution pendant la mise à jour.This staged update enables the application to keep running during the update. Elle fournit également un mécanisme de restauration en cas d’échec du déploiement.It also provides a rollback mechanism if a deployment failure occurs.

Dans ce didacticiel (le sixième d’une série de sept), l’exemple de l’application Azure Vote est mis à jour.In this tutorial, part six of seven, the sample Azure Vote app is updated. Vous allez apprendre à effectuer les actions suivantes :You learn how to:

  • Mise à jour du code de l’application frontaleUpdate the front-end application code
  • Création d’une image conteneur mise à jourCreate an updated container image
  • Envoi de l’image conteneur à Azure Container RegistryPush the container image to Azure Container Registry
  • Déploiement de l’image conteneur mise à jourDeploy the updated container image

Avant de commencerBefore you begin

Dans les tutoriels précédents, une application a été empaquetée dans une image conteneur.In previous tutorials, an application was packaged into a container image. Cette image a été chargée dans Azure Container Registry et vous avez créé un cluster AKS.This image was uploaded to Azure Container Registry, and you created an AKS cluster. L’application a ensuite été déployée sur le cluster AKS.The application was then deployed to the AKS cluster.

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.An application repository was also cloned that includes the application source code, and a pre-created Docker Compose file used in this tutorial. Vérifiez que vous avez cloné le référentiel et changé des répertoires dans le répertoire cloné.Verify that you've created a clone of the repo, and have changed directories into the cloned directory. 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.If you haven't completed these steps, and want to follow along, start with Tutorial 1 – Create container images.

Ce didacticiel nécessite l’exécution de l’interface de ligne de commande Azure CLI version 2.0.53 ou ultérieure.This tutorial requires that you're running the Azure CLI version 2.0.53 or later. Exécutez az --version pour trouver la version.Run az --version to find the version. Si vous devez installer ou mettre à niveau, voir Installer Azure CLI.If you need to install or upgrade, see Install Azure CLI.

Mettre à jour une applicationUpdate an application

Apportons une modification à l’exemple d’application, puis mettons à jour la version déjà déployée dans votre cluster AKS.Let's make a change to the sample application, then update the version already deployed to your AKS cluster. Veillez à être dans le répertoire azure-voting-app-redis cloné.Make sure that you're in the cloned azure-voting-app-redis directory. Le code source de l’exemple d’application se trouve alors dans le répertoire azure-vote.The sample application source code can then be found inside the azure-vote directory. Ouvrez le fichier config_file.cfg avec un éditeur tel que vi :Open the config_file.cfg file with an editor, such as vi:

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

Remplacez les valeurs de VOTE1VALUE et VOTE2VALUE par d’autres valeurs, comme des couleurs.Change the values for VOTE1VALUE and VOTE2VALUE to different values, such as colors. L’exemple suivant présente les valeurs mise à jour :The following example shows the updated values:

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

Enregistrez et fermez le fichier.Save and close the file. Dans vi, utilisez :wq.In vi, use :wq.

Mettre à jour l’image conteneurUpdate the container image

Pour recréer l’image front-end et tester l’application mise à jour, utilisez docker-compose.To re-create the front-end image and test the updated application, use docker-compose. L’argument --build est utilisé pour indiquer à Docker Compose de recréer l’image d’application :The --build argument is used to instruct Docker Compose to re-create the application image:

docker-compose up --build -d

Tester localement l’applicationTest the application locally

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.To verify that the updated container image shows your changes, open a local web browser to http://localhost:8080.

Image du cluster Kubernetes sur Azure

Les valeurs mises à jour fournies dans le fichier config_file.cfg s’affichent dans votre application en cours d’exécution.The updated values provided in the config_file.cfg file are displayed in your running application.

Marquer et envoyer l’imageTag and push the 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.To correctly use the updated image, tag the azure-vote-front image with the login server name of your ACR registry. Obtenez le nom du serveur de connexion à l’aide de la commande az acr list :Get the login server name with the az acr list command:

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

Utilisez docker tag pour ajouter une balise à l’image.Use docker tag to tag the 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 :Replace <acrLoginServer> with your ACR login server name or public registry hostname, and update the image version to :v2 as follows:

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

À présent, utilisez docker push pour charger l’image dans votre registre.Now use docker push to upload the image to your registry. Remplacez <acrLoginServer> par le nom de votre serveur de connexion ACR.Replace <acrLoginServer> with your ACR login server name.

Notes

Si vous rencontrez des problèmes en exécutant un push vers votre registre ACR, vérifiez que vous êtes toujours connecté.If you experience issues pushing to your ACR registry, make sure that you are still logged in. 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.Run the az acr login command using the name of your Azure Container Registry that you created in the Create an Azure Container Registry step. Par exemple : az acr login --name <azure container registry name>.For example, az acr login --name <azure container registry name>.

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

Déployer l’application mise à jourDeploy the updated application

Pour fournir une disponibilité maximale, vous devez exécuter plusieurs instances du pod d’application.To provide maximum uptime, multiple instances of the application pod must be running. Vérifiez le nombre d’instances front-end en cours d’exécution avec la commande kubectl get pods :Verify the number of running front-end instances with the kubectl get pods command:

$ 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 :If you don't have multiple front-end pods, scale the azure-vote-front deployment as follows:

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

Pour mettre à jour l’application, utilisez la commande kubectl set.To update the application, use the kubectl set command. 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 :Update <acrLoginServer> with the login server or host name of your container registry, and specify the v2 application version:

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.To monitor the deployment, use the kubectl get pod command. À mesure que l’application mise à jour est déployée, vos pods sont terminés et recréés avec la nouvelle image conteneur.As the updated application is deployed, your pods are terminated and re-created with the new container image.

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 :The following example output shows pods terminating and new instances running as the deployment progresses:

$ 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 à jourTest the updated application

Pour visualiser l’application mise à jour, commencez par obtenir l’adresse IP externe du service azure-vote-front :To view the update application, first get the external IP address of the azure-vote-front service:

kubectl get service azure-vote-front

À présent, ouvrez un navigateur web local et accédez à l’adresse IP de votre service :Now open a local web browser to the IP address of your service:

Image du cluster Kubernetes sur Azure

Étapes suivantesNext steps

Dans ce tutoriel, nous avons mis à jour une application et nous avons déployé cette mise à jour sur votre cluster AKS.In this tutorial, you updated an application and rolled out this update to your AKS cluster. Vous avez appris à effectuer les actions suivantes :You learned how to:

  • Mise à jour du code de l’application frontaleUpdate the front-end application code
  • Création d’une image conteneur mise à jourCreate an updated container image
  • Envoi de l’image conteneur à Azure Container RegistryPush the container image to Azure Container Registry
  • Déploiement de l’image conteneur mise à jourDeploy the updated container image

Passez au didacticiel suivant pour découvrir comment mettre à niveau un cluster AKS vers une nouvelle version de Kubernetes.Advance to the next tutorial to learn how to upgrade an AKS cluster to a new version of Kubernetes.