Ćwiczenie — rozwiązywanie problemów z usługą Azure Container Instances

Ukończone

Aby ułatwić zrozumienie podstawowych sposobów rozwiązywania problemów z wystąpieniami kontenerów, wykonaj kilka podstawowych operacji, takich jak:

  • Pobieranie dzienników kontenera
  • Wyświetlanie zdarzeń związanych z kontenerem
  • Dołączanie do wystąpienia kontenera

Pobieranie dzienników z poprzedniego wdrożonego wystąpienia kontenera

Uruchom następujące az container logs polecenie, aby wyświetlić dane wyjściowe z kontenera aplikacji do głosowania kotów i psów utworzonych w poprzednim ćwiczeniu:

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

Dane wyjściowe są podobne do następujących:

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
…

Pobieranie zdarzeń kontenera

Polecenie az container attach udostępnia informacje diagnostyczne podczas uruchamiania kontenera. Po uruchomieniu kontenera zapisuje ono również standardowe dane wyjściowe i standardowe strumienie błędów w terminalu lokalnym.

Uruchom polecenie az container attach , aby dołączyć do kontenera:

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

Dane wyjściowe są podobne do następujących:

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
…

Napiwek

Naciśnij klawisze Ctrl+C, aby odłączyć się od dołączonego kontenera.

Wykonywanie polecenia w kontenerze

Podczas diagnozowania i rozwiązywania problemów może być konieczne uruchamianie poleceń bezpośrednio w działającym kontenerze.

  1. Aby wyświetlić polecenia w kontenerze, uruchom następujące az container exec polecenie, aby uruchomić sesję interaktywną w kontenerze:

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

    W tym momencie efektywnie pracujesz wewnątrz kontenera.

  2. Uruchom polecenie ls, aby wyświetlić zawartość katalogu roboczego.

    # ls
    __pycache__  config_file.cfg  main.py  prestart.sh  static  templates  uwsgi.ini
    
  3. Jeśli chcesz, możesz dalej eksplorować system. Gdy wszystko będzie gotowe, uruchom polecenie exit, aby zatrzymać sesję interaktywną.

Monitorowanie użycia procesora i pamięci na kontenerze

Zobacz, jak monitorować użycie procesora CPU i pamięci w kontenerze.

  1. Uruchom następujące az container show polecenie, aby uzyskać identyfikator wystąpienia kontenera platformy Azure i zapisać identyfikator w zmiennej powłoki Bash:

    CONTAINER_ID=$(az container show \
      --resource-group learn-deploy-aci-rg \
      --name aci-demo \
      --query id \
      --output tsv)
    
  2. Uruchom polecenie , az monitor metrics list aby pobrać informacje o użyciu procesora CPU:

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

    Zanotuj argument --metrics. W tym miejscu element CPUUsage określa, że należy pobrać użycie procesora.

    Zostanie wyświetlony tekst podobny do następujących danych wyjściowych:

    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. Uruchom to az monitor metrics list polecenie, aby pobrać informacje o użyciu pamięci:

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

    W tym miejscu określono wartość MemoryUsage dla argumentu --metrics w celu pobrania informacji o użyciu pamięci.

    Zostanie wyświetlony tekst podobny do następujących danych wyjściowych:

    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
    

W witrynie Azure Portal informacje o użyciu procesora CPU i pamięci usługi Azure Container Instances wyglądają następująco:

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

Czyszczenie zasobów

W tym module zostały utworzone zasoby przy użyciu Twojej subskrypcji platformy Azure. Należy wyczyścić te zasoby, aby nie były naliczane opłaty za nie.

  1. Na stronie głównej platformy Azure wybierz pozycję Wszystkie zasoby.

  2. Znajdź grupę zasobów o nazwie learn-deploy-aci-rg (lub innej użytej przez Ciebie) i wybierz ją.

  3. Na karcie Przegląd grupy zasobów wybierz pozycję Usuń grupę zasobów.

  4. Zostanie otwarte nowe okno dialogowe. Ponownie wprowadź nazwę grupy zasobów i wybierz pozycję Usuń. Wszystkie zasoby utworzone w tym module zostaną usunięte.