Tutoriel : déployer une application sur Azure Kubernetes Service (AKS)
Kubernetes fournit une plateforme distribuée destinée aux applications en conteneur. Vous générez et déployez vos propres applications et services dans un cluster Kubernetes, et vous laissez le cluster gérer la disponibilité et la connectivité.
Dans ce didacticiel (le quatrième d’une série de sept), vous déployez un exemple d’application dans un cluster Kubernetes. Vous allez apprendre à effectuer les actions suivantes :
- Mettre à jour un fichier manifeste Kubernetes.
- Exécution d’une application dans Kubernetes.
- Test de l'application
Conseil
Avec AKS, vous pouvez utiliser les approches suivantes pour la gestion de la configuration :
GitOps : permet aux déclarations de l’état de votre cluster de s’appliquer automatiquement au cluster. Pour savoir comment utiliser GitOps pour déployer une application avec un cluster AKS, consultez le tutoriel Prérequis pour les clusters Azure Kubernetes Service dans le tutoriel GitOps avec Flux v2.
DevOps : vous permet de générer, tester et déployer avec l’intégration continue (CI) et la livraison continue (CD). Pour voir des exemples d’utilisation de DevOps pour déployer une application avec un cluster AKS, consultez Générer et déployer sur AKS avec Azure Pipelines ou GitHub Actions pour le déploiement sur Kubernetes.
Avant de commencer
Dans les didacticiels précédents, vous avez empaqueté une application dans une image conteneur, chargé l’image dans Azure Container Registry et créé un cluster Kubernetes. Pour terminer ce didacticiel, vous avez besoin du fichier aks-store-quickstart.yaml
manifeste Kubernetes précréé. Ce fichier a été téléchargé dans le code source de l’application à partir de Tutoriel 1 - Préparer l’application pour AKS.
Ce tutoriel nécessite Azure CLI version 2.0.53 ou ultérieure. Vérifiez votre version à l’aide de az --version
. Pour installer ou mettre à niveau Azure CLI, consultez Installer Azure CLI.
Mettre à jour le fichier manifeste
Dans ces didacticiels, votre instance Azure Container Registry (ACR) stocke l’image conteneur de l’exemple d’application. Pour déployer l’application, vous devez mettre à jour le nom de l’image dans le fichier manifeste Kubernetes afin d’inclure le nom de votre serveur de connexion ACR.
Obtenez l’adresse de votre serveur de connexion à l’aide de la commande
az acr list
et interrogez votre serveur de connexion.az acr list --resource-group myResourceGroup --query "[].{acrLoginServer:loginServer}" --output table
Vérifiez que vous êtes dans le répertoire aks-store-demo cloné, puis ouvrez le fichier manifeste
aks-store-quickstart.yaml
avec un éditeur de texte.Mettez à jour la propriété
image
pour les conteneurs en remplaçant ghcr.io/azure-samples par le nom de votre serveur de connexion ACR.containers: ... - name: order-service image: <acrName>.azurecr.io/aks-store-demo/order-service:latest ... - name: product-service image: <acrName>.azurecr.io/aks-store-demo/product-service:latest ... - name: store-front image: <acrName>.azurecr.io/aks-store-demo/store-front:latest ...
Enregistrez et fermez le fichier.
Exécution de l'application
Déployez l’application à l’aide de la commande
kubectl apply
, qui analyse le fichier manifeste et crée les objets Kubernetes définis.kubectl apply -f aks-store-quickstart.yaml
L’exemple de sortie suivant montre les ressources correctement créées dans le cluster AKS :
statefulset.apps/rabbitmq created configmap/rabbitmq-enabled-plugins created service/rabbitmq created deployment.apps/order-service created service/order-service created deployment.apps/product-service created service/product-service created deployment.apps/store-front created service/store-front created
Vérifiez que le déploiement réussit en consultant les pods avec
kubectl
kubectl get pods
Test de l’application
Quand l’application s’exécute, un service Kubernetes expose le front-end de l’application sur Internet. L’exécution de ce processus peut prendre plusieurs minutes.
Ligne de commande
Surveillez la progression avec la commande
kubectl get service
et l’argument--watch
.kubectl get service store-front --watch
Au début,
EXTERNAL-IP
pour le servicestore-front
apparaît comme<pending>
:store-front LoadBalancer 10.0.34.242 <pending> 80:30676/TCP 5s
Quand l’adresse
EXTERNAL-IP
passe de<pending>
à une adresse IP publique, utilisezCTRL-C
pour arrêter le processus de surveillancekubectl
.L’exemple de sortie suivant montre une adresse IP publique valide affectée au service :
store-front LoadBalancer 10.0.34.242 52.179.23.131 80:30676/TCP 67s
Affichez l’application en action en ouvrant un navigateur web et en accédant à l’adresse IP externe de votre service :
http://<external-ip>
.
Si l’application ne s’est pas chargée, il y a peut-être un problème d’autorisation avec votre registre d’images. Pour visualiser l’état de vos conteneurs, utilisez la commande kubectl get pods
. Si vous ne pouvez pas extraire les images conteneur, consultez S’authentifier auprès d’Azure Container Registry à partir d’Azure Kubernetes Service.
Portail Azure
Accédez au Portail Azure pour rechercher vos informations de déploiement.
Accédez à votre ressource de cluster AKS.
Dans le menu du service, sous Ressources Kubernetes, sélectionnez Services et entrées.
Copiez l’adresse IP externe affichée dans la colonne pour le service
store-front
.Collez l’adresse IP dans votre navigateur pour visiter la page de votre magasin.
Nettoyer les ressources
Étant donné que vous avez validé la fonctionnalité de l’application, vous pouvez désormais supprimer le cluster de l’application. Nous allons redéployer l’application dans le tutoriel suivant.
Pour arrêter et supprimer les instances de conteneur et les ressources, utilisez la commande
kubectl delete
.kubectl delete -f aks-store-quickstart.yaml
Vérifiez que tous les pods d’application ont été supprimés à l’aide de la commande
kubectl get pods
.kubectl get pods
Étapes suivantes
Dans ce tutoriel, vous avez déployé un exemple d’application Azure sur un cluster Kubernetes dans AKS. Vous avez appris à :
- Mettre à jour un fichier manifeste Kubernetes.
- Exécution d’une application dans Kubernetes.
- Test de l'application
Dans le tutoriel suivant, vous allez apprendre à utiliser les services PaaS pour les charges de travail avec état dans Kubernetes.
Azure Kubernetes Service