練習 - 針對 Azure 容器執行個體進行疑難排解

已完成

為協助您了解針對容器執行個體進行疑難排解的基本方法,執行一些基本操作,例如:

  • 提取容器記錄
  • 檢視容器事件
  • 連結至容器執行個體

取得先前部署的容器執行個體記錄

執行下列 az container logs 命令,以查看在前一個練習中所建立貓和狗投票應用程式容器的輸出:

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

您會得到類似下列的輸出:

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
…

取得容器事件

az container attach 命令提供容器啟動期間的診斷資訊。 一旦容器啟動之後,它也會將標準輸出和標準錯誤資料流寫入到您的本機終端機。

執行 az container attach 以連結您的容器:

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

您會得到類似下列的輸出:

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
…

提示

若要從已連結的容器中斷連結,請輸入 Ctrl+C

在容器中執行命令

在您診斷問題並進行疑難排解時,您可能需要在執行中的容器上直接執行命令。

  1. 若要在容器中查看命令,請執行下列 az container exec 命令以在容器上啟動互動式工作階段:

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

    此時,您實際上就是在容器內工作。

  2. 執行 ls 命令以顯示工作目錄的內容。

    # ls
    __pycache__  config_file.cfg  main.py  prestart.sh  static  templates  uwsgi.ini
    
  3. 如果您想要,可以進一步探索系統。 當您完成時,執行 exit 命令以停止互動式工作階段。

監視容器上的 CPU 和記憶體使用量

了解如何監視容器上的 CPU 和記憶體使用量。

  1. 執行下列 az container show 命令以取得 Azure 容器執行個體的識別碼,並將該識別碼儲存在 Bash 變數中:

    CONTAINER_ID=$(az container show \
      --resource-group learn-deploy-aci-rg \
      --name aci-demo-files \
      --query id \
      --output tsv)
    
  2. 執行 az monitor metrics list 命令以擷取 CPU 使用量資訊:

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

    請注意 --metrics 引數。 在這裡,CPUUsage 指定要擷取 CPU 使用量。

    您會看到類似以下輸出的文字:

    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. 執行 az monitor metrics list 命令以擷取記憶體使用量資訊:

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

    在這裡,您針對 --metrics 引數指定 MemoryUsage,以擷取記憶體使用量資訊。

    您會看到類似以下輸出的文字:

    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
    

在 Azure 入口網站中,Azure 容器執行個體 CPU 和記憶體使用量資訊如下所示:

顯示包含 Azure 容器執行個體 CPU 與記憶體使用量資訊的 Azure 入口網站檢視螢幕擷取畫面。

清除資源

在本課程模組中,您使用了 Azure 訂用帳戶建立資源。 您應該清除這些資源,以便您仍不需支付這些資源的費用。

  1. 在 Azure [首頁] 上,選取 [所有資源]

  2. 尋找 learn-deploy-aci-rg 資源群組,或您使用的資源群組名稱,然後加以選取。

  3. 在資源群組的 [概觀] 索引標籤中,選取 [刪除資源群組]

  4. 新的對話方塊隨即開啟。 再次輸入資源群組的名稱,然後選取 [刪除]。 我們在此課程模組中建立的所有資源會遭到刪除。