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 Local 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é 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 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 pour VOTE1VALUE
et VOTE2VALUE
vers différentes valeurs, 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
.
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 instance Azure Container Registry. 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 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 sur 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.
Remarque
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 :
Étapes suivantes
Dans ce tutoriel, vous avez mis à jour une application et déployé cette mise à jour vers 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 découvrir comment mettre à niveau un cluster vers une nouvelle version de Kubernetes.