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

Aby lepiej zrozumieć podstawowe sposoby rozwiązywania problemów z wystąpieniami kontenerów, w tym miejscu wykonasz kilka podstawowych operacji, takich jak:

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

Tworzenie kontenera

Uruchom następujące polecenie az container create, aby utworzyć podstawowy kontener.

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

Obraz microsoft/sample-aks-helloworld uruchamia serwer internetowy, który wyświetla podstawową stronę internetową.

Pobieranie dzienników z wystąpienia kontenera

Uruchom następujące polecenie az container logs, aby wyświetlić dane wyjściowe z aplikacji uruchamianej w kontenerze.

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

Zostaną wyświetlone dane wyjściowe podobne do poniższych.

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 w celu dołączenia do kontenera.

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

Zostaną wyświetlone dane wyjściowe podobne do poniższych.

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

Porada

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 zobaczyć, jak to działa, uruchom następujące polecenie az container exec w celu uruchomienia interaktywnej sesji na kontenerze.

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

    Na tym etapie w rzeczywistości pracujesz wewnątrz kontenera.

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

    # ls
    __pycache__  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

Poniżej pokazano, jak monitorować użycie procesora i pamięci na kontenerze.

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

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

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

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

    Zobaczysz dane wyjściowe podobne do poniższych.

    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. Uruchom to polecenie az monitor metrics list, aby pobrać informacje dotyczące użycia pamięci.

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

    W tym miejscu możesz określić element MemoryUsage dla argumentu --metric, aby pobrać informacje o użyciu pamięci.

    Zobaczysz dane wyjściowe podobne do poniższych.

    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
    

Zrzut ekranu przedstawiający widok witryny Azure Portal z informacjami o użyciu procesora i pamięci dla usługi Azure Container Instances.

Czyszczenie zasobów

W tym module zostały utworzone zasoby przy użyciu Twojej subskrypcji platformy Azure. Chcesz wyczyścić te zasoby, aby nie ponosić dłużej za nie opłat.

  1. Na platformie Azure wybierz pozycję Grupy zasobów po lewej stronie.

  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. Spowoduje to otwarcie nowego okna dialogowego. Ponownie wpisz nazwę grupy zasobów i wybierz pozycję Usuń. Spowoduje to usunięcie wszystkich zasobów utworzonych w tym module.