Exercício – resolver problemas do Azure Container Instances

Concluído

Para ajudá-lo a entender maneiras básicas de solucionar problemas de instâncias de contêiner, execute algumas operações básicas, como:

  • Extrair registos de contentores
  • Ver eventos de contentor
  • Anexar a uma instância de contentor

Obter logs de sua instância de contêiner implantada anterior

Execute o seguinte az container logs comando para ver a saída do contêiner do aplicativo de votação de cães e gatos que você criou no exercício anterior:

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

Você obtém uma saída semelhante 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
…

Obter eventos de contentor

O comando az container attach fornece informações de diagnóstico durante o arranque do contentor. Depois de o contentor ser iniciado, também regista transmissões de resultados e erros padrão no seu terminal local.

Execute az container attach para anexar ao seu contêiner:

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

Você obtém uma saída semelhante 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
…

Gorjeta

Prima Ctrl+C para desligar o seu contentor anexado.

Executar um comando no seu contentor

À medida que diagnostica e resolve problemas, poderá ter de executar comandos diretamente no contentor em execução.

  1. Para ver comandos em seu contêiner, execute o seguinte az container exec comando para iniciar uma sessão interativa em seu contêiner:

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

    Neste ponto, você está efetivamente trabalhando dentro do contêiner.

  2. Execute o comando ls para apresentar os conteúdos do diretório funcional.

    # ls
    __pycache__  config_file.cfg  main.py  prestart.sh  static  templates  uwsgi.ini
    
  3. Pode explorar o sistema mais aprofundadamente, se o quiser. Quando tiver terminado, execute o comando exit para parar a sessão interativa.

Monitorizar a utilização da CPU e da memória no seu contentor

Veja como monitorar o uso da CPU e da memória em seu contêiner.

  1. Execute o seguinte az container show comando para obter a ID da sua instância de contêiner do Azure e armazenar a ID em uma variável Bash:

    CONTAINER_ID=$(az container show \
      --resource-group learn-deploy-aci-rg \
      --name aci-demo \
      --query id \
      --output tsv)
    
  2. Execute o comando para recuperar informações de uso da az monitor metrics list CPU:

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

    Repare no argumento --metrics. Aqui, CPUUsage indica que a utilização da CPU deve ser obtida.

    Você vê um texto semelhante à seguinte saída:

    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. Execute este az monitor metrics list comando para recuperar informações de uso de memória:

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

    Aqui, você especificou MemoryUsage para o --metrics argumento para recuperar informações de uso de memória.

    Você vê um texto semelhante à seguinte saída:

    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
    

No portal do Azure, as informações de uso da CPU e da memória das Instâncias de Contêiner do Azure têm esta aparência:

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

Clean up resources (Limpar recursos)

Neste módulo, criou recursos através da sua subscrição do Azure. Você deve limpar esses recursos para que você ainda não seja cobrado por eles.

  1. Na home page do Azure, selecione Todos os recursos.

  2. Encontre o grupo de recursos learn-deploy-aci-rg ou o nome do grupo de recursos que utilizou e selecione-o.

  3. No separador Descrição geral do grupo de recursos, selecione Eliminar grupo de recursos.

  4. Uma nova caixa de diálogo é aberta. Digite o nome do grupo de recursos novamente e selecione Excluir. Todos os recursos que criamos neste módulo são excluídos.