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 :

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.

  1. 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
    
  2. 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
    
  3. 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
    ...
    
  4. Enregistrez et fermez le fichier. Dans vi, utilisez :wq.

Exécution de l'application

  1. 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
    
  2. 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

  1. 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
    
  2. Quand l’adresse EXTERNAL-IP passe de l’état pending à une adresse IP publique réelle, utilisez CTRL-C pour arrêter le processus de surveillance kubectl.

    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
    
  3. Affichez l’application en action en ouvrant un navigateur web à l’adresse IP externe de votre service.

    Capture d’écran de l’exemple d’application AKS Store.

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.

  1. Ouvrez votre de groupe de ressources sur le portail Azure

  2. Accédez au service Kubernetes de votre cluster

  3. Sélectionnez Services and Ingress sous Kubernetes Resources

  4. Copiez l’adresse IP externe affichée dans la colonne pour store-front

  5. Collez l’adresse IP dans votre navigateur et visitez la page de votre magasin

    Capture d’écran de l’exemple d’application AKS Store.

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