Ejercicio: solución de problemas de Azure Container Instances

Para ayudarle a entender las formas básicas de solucionar problemas con las instancias de contenedor, deberá realizar algunas operaciones básicas, por ejemplo:

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

Creación de un contenedor

Ejecute el siguiente comando az container create para crear un contenedor básico.

az container create \
  --resource-group learn-deploy-aci-rg \
  --name mycontainer \
  --image microsoft/sample-aks-helloworld \
  --ports 80 \
  --ip-address Public \
  --location eastus

La imagen microsoft/sample-aks-helloworld ejecuta un servidor web que muestra una página web básica.

Obtención de registros de una instancia de contenedor

Ejecute el siguiente comando az container logs para ver la salida de la aplicación en ejecución del contenedor.

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

Obtendrá un resultado similar al siguiente.

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 mycontainer

Obtendrá un resultado similar al siguiente.

Container 'mycontainer' is in state 'Running'...
(count: 1) (last timestamp: 2018-09-21 23:48:14+00:00) pulling image "microsoft/sample-aks-helloworld"
(count: 1) (last timestamp: 2018-09-21 23:49:09+00:00) Successfully pulled image "microsoft/sample-aks-helloworld"
(count: 1) (last timestamp: 2018-09-21 23:49:12+00:00) Created container
(count: 1) (last timestamp: 2018-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 verlo en acción, 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 mycontainer \
      --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__  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

Aquí verá cómo supervisar el uso de la CPU y 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 mycontainer \
      --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 \
      --metric CPUUsage \
      --output table
    

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

    Verá un resultado similar a este.

    Timestamp            Name              Average
    -------------------  ------------  -----------
    2018-08-20 21:39:00  CPU Usage
    2018-08-20 21:40:00  CPU Usage
    2018-08-20 21:41:00  CPU Usage
    2018-08-20 21:42:00  CPU Usage
    2018-08-20 21:43:00  CPU Usage      0.375
    2018-08-20 21:44:00  CPU Usage      0.875
    2018-08-20 21:45:00  CPU Usage      1
    2018-08-20 21:46:00  CPU Usage      3.625
    2018-08-20 21:47:00  CPU Usage      1.5
    2018-08-20 21:48:00  CPU Usage      2.75
    2018-08-20 21:49:00  CPU Usage      1.625
    2018-08-20 21:50:00  CPU Usage      0.625
    2018-08-20 21:51:00  CPU Usage      0.5
    2018-08-20 21:52:00  CPU Usage      0.5
    2018-08-20 21: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 \
      --metric MemoryUsage \
      --output table
    

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

    Verá una salida similar a esta.

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

Vista de Azure Portal con información de uso de memoria y la CPU de Azure Container Instances

Limpieza de los recursos

En este módulo, ha creado recursos mediante su suscripción de Azure. Quiere limpiar estos recursos para que no se le siga cobrando por ellos.

  1. En Azure, seleccione Grupos de recursos a la izquierda.

  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 nuevo cuadro de diálogo. Vuelva a escribir el nombre del grupo de recursos y seleccione Eliminar. Con esto se eliminan todos los recursos creados en este módulo.