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 avec un éditeur de texte, tel que
vi
.vi aks-store-quickstart.yaml
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. Dans
vi
, utilisez:wq
.
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 :
deployment.apps/rabbitmq 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
Initialement, le
EXTERNAL-IP
pour le store-front s'affiche comme en attente :store-front LoadBalancer 10.0.34.242 <pending> 80:30676/TCP 5s
Quand l’adresse
EXTERNAL-IP
passe de l’état pending à une adresse IP publique réelle, 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 à l’adresse IP externe de votre service.
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 à votre portail Azure pour rechercher vos informations de déploiement.
Ouvrez votre de groupe de ressources sur le portail Azure
Accédez au service Kubernetes de votre cluster
Sélectionnez
Services and Ingress
sousKubernetes Resources
Copiez l’adresse IP externe affichée dans la colonne pour store-front
Collez l’adresse IP dans votre navigateur et visitez la page de votre magasin
É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
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : pendant toute l’année 2024, nous allons éliminer progressivement Problèmes GitHub comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, voir :Soumettre et afficher des commentaires pour