Esercizio - Risolvere i problemi relativi a Istanze di Azure Container

Completato

Per comprendere i metodi di base per risolvere i problemi delle istanze di contenitore, eseguire alcune operazioni di base, come:

  • Pull dei log del contenitore
  • Visualizzazione degli eventi del contenitore
  • Collegamento a un'istanza di contenitore

Ottenere i log dall'istanza del contenitore distribuita in precedenza

Eseguire il comando az container logs seguente per visualizzare l'output del contenitore dell'app di voto per gatti e cani creato nell'esercizio precedente:

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

Si otterrà un output simile a questo:

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
…

Ottenere gli eventi del contenitore

Il comando az container attach offre informazioni di diagnostica durante l'avvio del contenitore. Dopo l'avvio del contenitore, il comando scriverà anche output standard e flussi di errore standard nel terminale locale.

Eseguire az container attach per il collegamento al contenitore:

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

Si otterrà un output simile a questo:

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
…

Suggerimento

Premere CTRL+C per disconnettersi dal contenitore collegato.

Eseguire un comando nel contenitore

Durante la diagnosi e la risoluzione dei problemi può essere necessario eseguire i comandi direttamente nel contenitore in esecuzione.

  1. Per vedere i comandi nel contenitore, eseguire il comando az container exec seguente per avviare una sessione interattiva nel contenitore:

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

    A questo punto, si sta in realtà lavorando all'interno del contenitore.

  2. Eseguire il comando ls per visualizzare il contenuto della directory di lavoro.

    # ls
    __pycache__  config_file.cfg  main.py  prestart.sh  static  templates  uwsgi.ini
    
  3. Se si vuole, si può esplorare ulteriormente il sistema. Al termine, eseguire il comando exit per arrestare la sessione interattiva.

Monitorare l'utilizzo di CPU e memoria nel contenitore

Viene illustrato come monitorare l'utilizzo di CPU e memoria nel contenitore.

  1. Eseguire il comando az container show seguente per ottenere l'ID dell'istanza di contenitore di Azure e archiviarlo in una variabile Bash:

    CONTAINER_ID=$(az container show \
      --resource-group learn-deploy-aci-rg \
      --name aci-demo \
      --query id \
      --output tsv)
    
  2. Eseguire il comando az monitor metrics list per recuperare le informazioni sull'utilizzo della CPU:

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

    Si noti l'argomento --metrics. Qui CPUUsage specifica di recuperare l'utilizzo della CPU.

    Il testo sarà simile all'output seguente:

    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. Eseguire il comando az monitor metrics list per recuperare le informazioni sull'utilizzo della memoria:

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

    Qui viene specificato MemoryUsage per l'argomento --metrics per recuperare le informazioni sull'utilizzo della memoria.

    Il testo sarà simile all'output seguente:

    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
    

Nel portale di Azure, le informazioni relative all'utilizzo di memoria e CPU da parte di Istanze di Azure Container sono simili a quanto segue:

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

Pulire le risorse

In questo modulo sono state create risorse usando la propria sottoscrizione di Azure. È consigliabile pulire queste risorse in modo che non siano ancora addebitate.

  1. Nella home page di Azure selezionare Tutte le risorse.

  2. Trovare il gruppo di risorse learn-deploy-aci-rg oppure il nome del gruppo di risorse usato e selezionarlo.

  3. Nella scheda Panoramica del gruppo di risorse selezionare Elimina gruppo di risorse.

  4. Si aprirà una nuova finestra di dialogo. Immettere di nuovo il nome del gruppo di risorse e selezionare Elimina. Tutte le risorse create in questo modulo verranno eliminate.