Övning – Felsöka Azure Container Instances

Slutförd

För att hjälpa dig att förstå grundläggande sätt att felsöka containerinstanser kan du utföra några grundläggande åtgärder som:

  • Hämta containerloggar
  • Visa containerhändelser
  • Ansluta till en containerinstans

Hämta loggar från din tidigare distribuerade containerinstans

Kör följande az container logs kommando för att se utdata från den katt- och hundröstningsappcontainer som du skapade i föregående övning:

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

Du får utdata som liknar:

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
…

Hämta containerhändelser

Med kommandot az container attach kan du visa diagnostisk information när containern startas. När containern har startats skriver den även standardutdata och standardfelströmmar till din lokala terminal.

Kör az container attach för att ansluta till containern:

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

Du får utdata som liknar:

Container 'aci-demo-files' 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
…

Dricks

Tryck på Ctrl+C för att koppla från den anslutna containern.

Köra ett kommando i containern

När du diagnostiserar och felsöker problem kan du behöva köra kommandon direkt i den aktiva containern.

  1. Om du vill se kommandon i containern kör du följande az container exec kommando för att starta en interaktiv session i containern:

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

    Nu arbetar du effektivt i containern.

  2. Kör ls-kommandot för att visa innehållet i arbetskatalogen.

    # ls
    __pycache__  config_file.cfg  main.py  prestart.sh  static  templates  uwsgi.ini
    
  3. Om du vill kan du utforska systemet ytterligare. När du är klar kör du kommandot exit för att stoppa den interaktiva sessionen.

Övervaka containerns processor- och minnesanvändning.

Se hur du övervakar processor- och minnesanvändning i containern.

  1. Kör följande az container show kommando för att hämta ID:t för din Azure-containerinstans och lagra ID:t i en Bash-variabel:

    CONTAINER_ID=$(az container show \
      --resource-group learn-deploy-aci-rg \
      --name aci-demo-files \
      --query id \
      --output tsv)
    
  2. az monitor metrics list Kör kommandot för att hämta cpu-användningsinformation:

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

    Observera --metrics-argumentet. Här anger CPUUsage att processoranvändningen ska hämtas.

    Du ser text som liknar följande utdata:

    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. Kör det här az monitor metrics list kommandot för att hämta information om minnesanvändning:

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

    Här har du angett MemoryUsage för argumentet för --metrics att hämta information om minnesanvändning.

    Du ser text som liknar följande utdata:

    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
    

I Azure-portalen ser cpu- och minnesanvändningsinformationen för Azure Container Instances ut så här:

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

Rensa resurser

I den här modulen skapade du resurser med hjälp av din Azure-prenumeration. Du bör rensa dessa resurser så att du inte fortfarande debiteras för dem.

  1. På Startsidan för Azure väljer du Alla resurser.

  2. Leta upp resursgruppen learn-deploy-aci-rg, eller det resursgruppsnamn som du använde, och välj resursgruppen.

  3. På fliken Översikt i resursgruppen väljer du Ta bort resursgrupp.

  4. En ny dialogruta öppnas. Ange namnet på resursgruppen igen och välj Ta bort. Alla resurser som vi skapade i den här modulen tas bort.