تمرين - استكشاف أخطاء Azure Container Instances وإصلاحها

مكتمل

لمساعدتك في فهم الطرق الأساسية لاستكشاف أخطاء مثيلات الحاوية وإصلاحها، ستقوم هنا بتنفيذ بعض العمليات الأساسية مثل:

  • سحب سجلات الحاويات
  • عرض أحداث الحاوية
  • إرفاق بمثيل حاوية

الحصول على سجلات من مثيل حاويتك المنشورة مسبقاً

شغّل الأمر التالي az container logs لرؤية الإخراج من حاوية تطبيق تصويت القطط والكلاب التي أنشأتها في التمرين السابق.

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

سترى المخرجات المشابهة لما يلي.

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

سترى المخرجات المشابهة لما يلي.

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
…

تلميح

أدخل ⁧⁧⁩⁩Ctrl+C⁧⁧⁩⁩ لقطع الاتصال بالحاوية المرفقة.

نفذ أمرًا في الحاوية

في أثناء تشخيص المشكلات واستكشافها وإصلاحها، قد تحتاج إلى تشغيل الأوامر مباشرةً على الحاوية قيد التشغيل.

  1. لمشاهدة هذا في أثناء العمل، قم بتشغيل الأمر التالي ⁧⁧az container exec⁩⁩ لبدء جلسة عمل تفاعلية على الحاوية.

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

    في هذه المرحلة، أنت تعمل بشكل فعال داخل الحاوية.

  2. شغل الأمر ls لعرض محتويات دليل العمل.

    # ls
    __pycache__  config_file.cfg  main.py  prestart.sh  static  templates  uwsgi.ini
    
  3. يمكنك استكشاف النظام أكثر إذا كنت ترغب في ذلك. عند الانتهاء، قم بتشغيل الأمر exit لإيقاف جلسة العمل التفاعلية.

مراقبة وحدة المعالجة المركزية واستخدام الذاكرة على الحاوية

هنا سترى كيفية مراقبة وحدة المعالجة المركزية واستخدام الذاكرة على الحاوية.

  1. شغل الأمر التالي ⁧⁧az container show⁩⁩ للحصول على معرف مثيل حاوية Azure وخزن المعرف في متغير Bash.

    CONTAINER_ID=$(az container show \
      --resource-group learn-deploy-aci-rg \
      --name aci-demo \
      --query id \
      --output tsv)
    
  2. شغل الأمر az monitor metrics list لاسترداد معلومات استخدام وحدة المعالجة المركزية.

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

    لاحظ --metricsالوسيطة. هنا، يحدد ⁧⁧⁩⁩CPUUsage⁧⁧⁩⁩ لاسترداد استخدام وحدة المعالجة المركزية.

    سترى مُخرجًا مشابهة لهذا.

    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
    

    هنا، يمكنك تحديد ⁧⁧⁩⁩MemoryUsage⁧⁧⁩⁩⁧⁧ لوسيطة ⁦⁧--metrics⁩⁩ لاسترداد معلومات استخدام الذاكرة.

    سترى مُخرجًا مشابهة لهذا.

    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
    

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

تنظيف الموارد

في هذه الوحدة النمطية، قمت بإنشاء موارد باستخدام اشتراك Azure. أنت تريد تنظيف هذه الموارد حتى لا تستمر في دفع الرسوم عنها.

  1. في الصفحة الرئيسية لـ Azure، حدد All resources.

  2. ابحث عن مجموعة موارد ⁧⁩learn-deploy-acr-rg⁩، أو أيًا كان الاسم الذي استخدمته لمجموعة الموارد، وحدده.

  3. في علامة التبويب ⁧⁧Overview⁩⁩⁧⁧⁩⁩ لمجموعة الموارد، حدد ⁩⁩Delete resource group⁦⁦⁧⁧⁩⁩.

  4. يؤدي هذا إلى فتح مربع حوار جديد. اكتب اسم مجموعة الموارد، وحدد Delete. سيؤدي هذا إلى حذف كافة الموارد التي أنشأناها في هذه الوحدة النمطية.