البرنامج التعليمي: انشر مجموعة متعددة الحاويات باستخدام ملف YAML
تدعم مثيلات حاوية Azure توزيع عدة حاويات على مضيف واحد باستخدام مجموعة حاويات. تعد مجموعة الحاوية مفيدة عند إنشاء عنصر جانبي للتطبيق للتسجيل، أو المراقبة، أو أي تكوين آخر حيث تحتاج الخدمة إلى عملية ملحقة ثانية.
في هذا البرنامج التعليمي، يمكنك اتباع الخطوات لتشغيل تكوين sidecar مكون من حاويتين عن طريق نشر ملف YAML باستخدام Azure CLI. يوفر ملف YAML تنسيقًا موجزًا لتحديد إعدادات المثيل. ستتعلم كيفية:
- تكوين ملف YAML
- انشر مجموعة الحاوية
- عرض سجلات الحاويات
إشعار
المجموعات متعددة الحاويات مقصورة حاليًا على حاويات Linux.
إذا لم يكن لديك اشتراك في Azure، فأنشئ حساب Azure مجاني قبل أن تبدأ.
المتطلبات الأساسية
استخدم بيئة Bash في Azure Cloud Shell. لمزيد من المعلومات، راجع التشغيل السريع ل Bash في Azure Cloud Shell.
إذا كنت تفضل تشغيل أوامر مرجع CLI محلياً قم بتثبيت CLI Azure. إذا كنت تعمل على نظام تشغيل Windows أو macOS، ففكر في تشغيل Azure CLI في حاوية Docker. لمزيد من المعلومات، راجع كيفية تشغيل Azure CLI في حاوية Docker.
إذا كنت تستخدم تثبيت محلي، يُرجى تسجيل الدخول إلى Azure CLI مستخدمًا أمر az login. لإنهاء عملية المصادقة، اتبع الخطوات المعروضة في جهازك. للحصول على خيارات أخرى لتسجيل دخول، راجع تسجيل الدخول باستخدام Azure CLI.
عندما يُطلب منك، قم بتثبيت ملحق Azure CLI عند الاستخدام لأول مرة. لمزيد من المعلومات بشأن الامتدادات، راجع استخدام امتدادات مع Azure CLI.
يُرجى تشغيل إصدار az للوصول إلى الإصدار والمكتبات التابعة التي تم تثبيتها. للتحديث لآخر إصدار، يُرجى تشغيل تحديث az.
تكوين ملف 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
كما ترى، يقوم sidecar بشكل دوري بإجراء طلب HTTP إلى تطبيق الويب الرئيسي عبر الشبكة المحلية للمجموعة للتأكد من تشغيله. يمكن توسيع هذا المثال الجانبي ليطلق تنبيهًا إذا تلقى رمز استجابة HTTP غير 200 OK
.
الخطوات التالية
في هذا البرنامج التعليمي، استخدمت ملف YAML لنشر مجموعة متعددة الحاويات في مثيلات Azure Container. لقد تعرفت على كيفية:
- تهيئة ملف YAML لمجموعة متعددة الحاويات
- انشر مجموعة الحاوية
- عرض سجلات الحاويات
يمكنك أيضًا تحديد مجموعة متعددة الحاويات باستخدام نموذج Resource Manager . يمكن تكييف قالب Resource Manager بسهولة للسيناريوهات عندما تحتاج إلى نشر المزيد من موارد خدمة Azure مع مجموعة الحاويات.