Exercice : Résoudre les problèmes liés à Azure Container Instances

Effectué

Pour vous aider à comprendre les méthodes de base pour résoudre les problèmes des instances de conteneur, effectuez certaines opérations de base, comme :

  • Extraire les journaux du conteneur
  • Visualiser les événements du conteneur
  • Vous attacher à une instance de conteneur

Récupération des journaux à partir de votre instance de conteneur déployée précédemment

Exécutez la commande az container logs suivante pour voir la sortie du conteneur de l’application de vote des chats et des chiens que vous avez créée dans l’exercice précédent :

az container logs \
  --resource-group learn-deploy-aci-rg \
  --name aci-demo

Vous obtenez une sortie similaire à :

Checking for script in /app/prestart.sh
Running script /app/prestart.sh
Running inside /app/prestart.sh, you could add migrations to this file, e.g.:

#! /usr/bin/env bash

# Let the DB start
sleep 10;
# Run migrations
alembic upgrade head
…

Obtenir les événements du conteneur

La commande az container attach fournit des informations de diagnostic lors du démarrage du conteneur. Une fois que le conteneur a démarré, elle écrit également des flux de sortie et d’erreurs standard sur votre terminal local.

Exécutez az container attach pour vous attacher à votre conteneur :

az container attach \
  --resource-group learn-deploy-aci-rg \
  --name aci-demo

Vous obtenez une sortie similaire à :

Container 'aci-demo' is in state 'Running'...
(count: 1) (last timestamp: 2021-09-21 23:48:14+00:00) pulling image "mcr.microsoft.com/azuredocs/azure-vote-front"
(count: 1) (last timestamp: 2021-09-21 23:49:09+00:00) Successfully pulled image "mcr.microsoft.com/azuredocs/azure-vote-front"
(count: 1) (last timestamp: 2021-09-21 23:49:12+00:00) Created container
(count: 1) (last timestamp: 2021-09-21 23:49:13+00:00) Started container

Start streaming logs:
Checking for script in /app/prestart.sh
Running script /app/prestart.sh
…

Conseil

Appuyez sur Ctrl+C pour vous déconnecter de votre conteneur attaché.

Exécuter une commande dans votre conteneur

Quand vous faites des diagnostics et que vous résolvez des problèmes, vous pouvez être amené à exécuter des commandes directement sur votre conteneur en cours d’exécution.

  1. Pour voir les commandes dans votre conteneur, exécutez la commande az container exec suivante pour démarrer une session interactive sur votre conteneur :

    az container exec \
      --resource-group learn-deploy-aci-rg \
      --name aci-demo \
      --exec-command /bin/sh
    

    À ce stade, vous travaillez effectivement à l’intérieur du conteneur.

  2. Exécutez la commande ls pour afficher le contenu du répertoire de travail.

    # ls
    __pycache__  config_file.cfg  main.py  prestart.sh  static  templates  uwsgi.ini
    
  3. Vous pouvez explorer le système plus avant si vous le souhaitez. Quand vous avez terminé, exécutez la commande exit pour arrêter la session interactive.

Surveiller l’utilisation de l’UC et de la mémoire sur votre conteneur

Découvrez comment superviser l’utilisation du processeur et de la mémoire sur votre conteneur.

  1. Exécutez la commande az container show suivante pour obtenir l’ID de votre instance de conteneur Azure et stocker cet ID dans une variable Bash :

    CONTAINER_ID=$(az container show \
      --resource-group learn-deploy-aci-rg \
      --name aci-demo \
      --query id \
      --output tsv)
    
  2. Exécutez la commande az monitor metrics list pour extraire les informations d’utilisation de l’UC :

    az monitor metrics list \
      --resource $CONTAINER_ID \
      --metrics CPUUsage \
      --output table
    

    Notez l’argument --metrics. Ici, CPUUsage spécifie qu’il faut récupérer l’utilisation de l’UC.

    La sortie est similaire au texte suivant :

    Timestamp            Name          Average
    -------------------  ------------  -----------
    2021-09-21 23:39:00  CPU Usage
    2021-09-21 23:40:00  CPU Usage
    2021-09-21 23:41:00  CPU Usage
    2021-09-21 23:42:00  CPU Usage
    2021-09-21 23:43:00  CPU Usage      0.375
    2021-09-21 23:44:00  CPU Usage      0.875
    2021-09-21 23:45:00  CPU Usage      1
    2021-09-21 23:46:00  CPU Usage      3.625
    2021-09-21 23:47:00  CPU Usage      1.5
    2021-09-21 23:48:00  CPU Usage      2.75
    2021-09-21 23:49:00  CPU Usage      1.625
    2021-09-21 23:50:00  CPU Usage      0.625
    2021-09-21 23:51:00  CPU Usage      0.5
    2021-09-21 23:52:00  CPU Usage      0.5
    2021-09-21 23:53:00  CPU Usage      0.5
    
  3. Exécutez cette commande az monitor metrics list pour récupérer les informations d’utilisation de la mémoire :

    az monitor metrics list \
      --resource $CONTAINER_ID \
      --metrics MemoryUsage \
      --output table
    

    Ici, vous avez spécifié MemoryUsage pour l’argument --metrics de façon à récupérer les informations d’utilisation de la mémoire.

    La sortie est similaire au texte suivant :

    Timestamp            Name          Average
    -------------------  ------------  -----------
    2021-09-21 23:43:00  Memory Usage
    2021-09-21 23:44:00  Memory Usage  0.0
    2021-09-21 23:45:00  Memory Usage  15917056.0
    2021-09-21 23:46:00  Memory Usage  16744448.0
    2021-09-21 23:47:00  Memory Usage  16842752.0
    2021-09-21 23:48:00  Memory Usage  17190912.0
    2021-09-21 23:49:00  Memory Usage  17506304.0
    2021-09-21 23:50:00  Memory Usage  17702912.0
    2021-09-21 23:51:00  Memory Usage  17965056.0
    2021-09-21 23:52:00  Memory Usage  18509824.0
    2021-09-21 23:53:00  Memory Usage  18649088.0
    2021-09-21 23:54:00  Memory Usage  18845696.0
    2021-09-21 23:55:00  Memory Usage  19181568.0
    

Dans le portail Azure, les informations sur l’utilisation de la mémoire et du processeur dans Azure Container Instances ressemblent à ceci :

Screenshot that shows the Azure portal view of Azure Container Instances CPU and memory usage information.

Nettoyer les ressources

Dans ce module, vous avez créé des ressources en utilisant votre abonnement Azure. Vous devez nettoyer ces ressources afin qu’elles ne soient pas facturées.

  1. Dans la page d’accueil d’Azure, sélectionnez Toutes les ressources.

  2. Recherchez le groupe de ressources learn-deploy-aci-rg ou le nom du groupe de ressources que vous avez utilisé, puis sélectionnez-le.

  3. Sous l’onglet Vue d’ensemble du groupe de ressources, sélectionnez Supprimer le groupe de ressources.

  4. Une nouvelle boîte de dialogue s’affiche. Entrez de nouveau le nom du groupe de ressources, et sélectionnez Supprimer. Toutes les ressources que nous avons créées dans ce module sont supprimées.