Ejercicio: solución de problemas de Azure Container Instances

Completado

Para ayudarle a conocer las formas básicas de solucionar los problemas de las instancias de contenedor, debe realizar algunas operaciones básicas, como:

  • Extraer registros de los contenedores
  • Visualizar los registros de los contenedores
  • Conectarse a una instancia de contenedor

Obtención de registros de la instancia de contenedor implementada anteriormente

Ejecute el siguiente comando az container logs para ver la salida del contenedor de la aplicación de votación de gatos y perros que creó en el ejercicio anterior:

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

Se obtiene una salida similar a:

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
…

Obtención de eventos de contenedor

El comando az container attach proporciona información de diagnóstico durante el inicio del contenedor. Una vez iniciado el contenedor, también escribe una salida estándar y flujos de errores en el terminal local.

Ejecute az container attach para conectarse a su contenedor:

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

Se obtiene una salida similar a:

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
…

Sugerencia

Presione Ctrl+C para desconectarse de un contenedor asociado.

Ejecución de un comando en el contenedor

A medida que diagnostique errores y solucione problemas, es posible que deba ejecutar comandos directamente en el contenedor en ejecución.

  1. Para ver los comandos en el contenedor, ejecute el siguiente comando az container exec para iniciar una sesión interactiva en el contenedor:

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

    En este punto, estará trabajando dentro del contenedor.

  2. Ejecute el comando ls para mostrar el contenido del directorio de trabajo.

    # ls
    __pycache__  config_file.cfg  main.py  prestart.sh  static  templates  uwsgi.ini
    
  3. Si quiere, puede explorar aún más el sistema. Cuando haya terminado, ejecute el comando exit para detener la sesión interactiva.

Supervisión del uso de CPU y memoria en su contenedor

Vea la forma en que se supervisa el uso de la CPU y de la memoria en el contenedor.

  1. Ejecute el siguiente comando az container show para obtener el identificador de la instancia de contenedor de Azure y almacenarlo en una variable Bash:

    CONTAINER_ID=$(az container show \
      --resource-group learn-deploy-aci-rg \
      --name aci-demo \
      --query id \
      --output tsv)
    
  2. Ejecute el comando az monitor metrics list para recuperar información de uso de la CPU:

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

    Tenga en cuenta el argumento --metrics. En este caso, CPUUsage especifica que hay que recuperar el uso de la CPU.

    El texto que verá será similar al siguiente:

    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. Ejecute el comando az monitor metrics list para recuperar información de uso de la memoria:

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

    Aquí, para recuperar información de uso de memoria, especifique MemoryUsage para el argumento --metrics.

    El texto que verá será similar al siguiente:

    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
    

En Azure Portal, la información de uso de la CPU y memoria de Azure Container Instances es como esta:

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

Limpieza de recursos

En este módulo, ha creado recursos mediante la suscripción de Azure. Debe limpiar estos recursos para que no se le cobren.

  1. En la página principal de Azure, seleccione Todos los recursos.

  2. Busque el grupo de recursos learn-deploy-aci-rg, o el nombre del grupo de recursos que haya usado, y selecciónelo.

  3. En la pestaña Información general del grupo de recursos, seleccione Eliminar grupo de recursos.

  4. Se abre un cuadro de diálogo. Vuelva a escribir el nombre del grupo de recursos y seleccione Eliminar. Se eliminan todos los recursos creados en este módulo.