البرنامج التعليمي: انشر مجموعة متعددة الحاويات باستخدام ملف YAML

تدعم مثيلات حاوية Azure توزيع عدة حاويات على مضيف واحد باستخدام مجموعة حاويات. تعد مجموعة الحاوية مفيدة عند إنشاء عنصر جانبي للتطبيق للتسجيل، أو المراقبة، أو أي تكوين آخر حيث تحتاج الخدمة إلى عملية ملحقة ثانية.

في هذا البرنامج التعليمي، يمكنك اتباع الخطوات لتشغيل تكوين جانبي بسيط من حاويتين عن طريق نشر ملف YAML باستخدام Azure CLI. يوفر ملف YAML تنسيقًا موجزًا لتحديد إعدادات المثيل. ‏‫ستتعلم كيفية:

  • تكوين ملف YAML
  • انشر مجموعة الحاوية
  • عرض سجلات الحاويات

إشعار

المجموعات متعددة الحاويات مقصورة حاليًا على حاويات Linux.

إذا لم يكن لديك اشتراك في Azure، فأنشئ حساب Azure مجاني قبل أن تبدأ.

المتطلبات الأساسية

تكوين ملف YAML

لتوزيع مجموعة متعددة الحاويات باستخدام الأمر إنشاء الحاوية من az في Azure CLI، يجب عليك تحديد تكوين مجموعة الحاوية في ملف YAML. ثم قم بتمرير ملف YAML كمعامل للأمر.

ابدأ بنسخ YAML التالي في ملف جديد باسم publish-aci.yaml . في Azure Cloud Shell، يمكنك استخدامVisual Studio Code لإنشاء الملف في دليل العمل الخاص بك:

code deploy-aci.yaml

يعرّف ملف YAML هذا مجموعة الحاويات المسماة "myContainerGroup" بحاويتين وعنوان IP عام ومنفذين مكشوفين. تنشر الحاويات من صور Microsoft العامة. تقوم الحاوية الأولى في المجموعة بتشغيل تطبيق ويب مواجه للإنترنت. الحاوية الثانية، السيارة الجانبية، تقدم بشكل دوري طلبات HTTP إلى تطبيق الويب الذي يعمل في الحاوية الأولى عبر الشبكة المحلية لمجموعة الحاوية.

apiVersion: 2019-12-01
location: eastus
name: myContainerGroup
properties:
  containers:
  - name: aci-tutorial-app
    properties:
      image: mcr.microsoft.com/azuredocs/aci-helloworld:latest
      resources:
        requests:
          cpu: 1
          memoryInGb: 1.5
      ports:
      - port: 80
      - port: 8080
  - name: aci-tutorial-sidecar
    properties:
      image: mcr.microsoft.com/azuredocs/aci-tutorial-sidecar
      resources:
        requests:
          cpu: 1
          memoryInGb: 1.5
  osType: Linux
  ipAddress:
    type: Public
    ports:
    - protocol: tcp
      port: 80
    - protocol: tcp
      port: 8080
tags: {exampleTag: tutorial}
type: Microsoft.ContainerInstance/containerGroups

لاستخدام سجل صورة حاوية خاصة، أضف الخاصية imageRegistryCredentials إلى مجموعة الحاوية، مع تعديل القيم لبيئتك:

  imageRegistryCredentials:
  - server: imageRegistryLoginServer
    username: imageRegistryUsername
    password: imageRegistryPassword

انشر مجموعة الحاوية

قم بإنشاء مجموعة موارد باستخدام الأمر az group create :

az group create --name myResourceGroup --location eastus

انشر مجموعة الحاوية باستخدام الأمر az container create ، وقم بتمرير ملف YAML كوسيطة:

az container create --resource-group myResourceGroup --file deploy-aci.yaml

في غضون ثوانٍ قليلة، من المفترض أن تتلقى استجابة أولية من Azure.

عرض حالة النشر

لعرض حالة التوزيع، استخدم الأمر التالي az container show:

az container show --resource-group myResourceGroup --name myContainerGroup --output table

إذا كنت ترغب في عرض التطبيق قيد التشغيل، فانتقل إلى عنوان IP الخاص به في متصفحك. على سبيل المثال، عنوان IP هو 52.168.26.124في هذا المثال الناتج:

Name              ResourceGroup    Status    Image                                                                                               IP:ports              Network    CPU/Memory       OsType    Location
----------------  ---------------  --------  --------------------------------------------------------------------------------------------------  --------------------  ---------  ---------------  --------  ----------
myContainerGroup  danlep0318r      Running   mcr.microsoft.com/azuredocs/aci-tutorial-sidecar,mcr.microsoft.com/azuredocs/aci-helloworld:latest  20.42.26.114:80,8080  Public     1.0 core/1.5 gb  Linux     eastus

عرض سجلات الحاوية

اعرض إخراج السجل للحاوية باستخدام الأمر az container logs. تحدد الوسيطة --container-nameالحاوية التي يتم سحب السجلات منها. في هذا المثال، تم تحديد الحاوية aci-tutorial-app.

az container logs --resource-group myResourceGroup --name myContainerGroup --container-name aci-tutorial-app

إخراج:

listening on port 80
::1 - - [02/Jul/2020:23:17:48 +0000] "HEAD / HTTP/1.1" 200 1663 "-" "curl/7.54.0"
::1 - - [02/Jul/2020:23:17:51 +0000] "HEAD / HTTP/1.1" 200 1663 "-" "curl/7.54.0"
::1 - - [02/Jul/2020:23:17:54 +0000] "HEAD / HTTP/1.1" 200 1663 "-" "curl/7.54.0"

لمشاهدة سجلات الحاوية الجانبية، قم بتشغيل أمر مشابه يحدد الحاوية aci-tutorial-sidecar.

az container logs --resource-group myResourceGroup --name myContainerGroup --container-name aci-tutorial-sidecar

إخراج:

Every 3s: curl -I http://localhost                          2020-07-02 20:36:41

  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0  1663    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
HTTP/1.1 200 OK
X-Powered-By: Express
Accept-Ranges: bytes
Cache-Control: public, max-age=0
Last-Modified: Wed, 29 Nov 2017 06:40:40 GMT
ETag: W/"67f-16006818640"
Content-Type: text/html; charset=UTF-8
Content-Length: 1663
Date: Thu, 02 Jul 2020 20:36:41 GMT
Connection: keep-alive

كما ترى، يقوم الجهاز الجانبي بشكل دوري بتقديم طلب HTTP إلى تطبيق الويب الرئيسي عبر الشبكة المحلية للمجموعة للتأكد من أنه يعمل. يمكن توسيع هذا المثال الجانبي ليطلق تنبيهًا إذا تلقى رمز استجابة HTTP غير 200 OK.

الخطوات التالية

في هذا البرنامج التعليمي، استخدمت ملف YAML لنشر مجموعة متعددة الحاويات في مثيلات Azure Container. لقد تعرفت على كيفية:

  • تهيئة ملف YAML لمجموعة متعددة الحاويات
  • انشر مجموعة الحاوية
  • عرض سجلات الحاويات

يمكنك أيضًا تحديد مجموعة متعددة الحاويات باستخدام نموذج Resource Manager . يمكن تكييف قالب Resource Manager بسهولة مع السيناريوهات عندما تحتاج إلى نشر موارد خدمة Azure إضافية مع مجموعة الحاوية.