Tutoriel - Mettre à jour une application dans Azure Kubernetes Service sur Azure Stack HCI et Windows Server

Après avoir déployé une application dans Kubernetes dans Azure Kubernetes Service (AKS) sur Azure Stack HCI et Windows Server, vous pouvez la mettre à jour en spécifiant une nouvelle image conteneur ou 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éer un cluster AKS sur Azure Stack HCI et déployer 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 cloné le référentiel et changé des 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 exige que vous exécutiez 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 décrit comment apporter une modification à l’application type, puis mettre à jour la version déjà déployée sur votre cluster AKS sur Azure Stack HCI et Windows Server. 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 notepad :

notepad 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.

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 S 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.

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.

Remarque

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.