ملاحظة
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تسجيل الدخول أو تغيير الدلائل.
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تغيير الدلائل.
بالنسبة لتطبيقات الحاوية التي تخدم نسبة استخدام الشبكة، قد تحتاج إلى التحقق من أن الحاوية جاهزة لمعالجة الطلبات الواردة. تدعم مثيلات حاوية Azure أدوات فحص الجاهزية لتضمين التكوينات بحيث لا يمكن الوصول إلى الحاوية الخاصة بك في ظل ظروف معينة. يعمل فحص الجاهزية مثل فحص جاهزية Kubernetes. على سبيل المثال، قد يحتاج تطبيق حاوية إلى تحميل مجموعة بيانات كبيرة أثناء بدء التشغيل، ولا تريد أن يتلقى طلبات خلال هذا الوقت.
توضح هذه المقالة كيفية توزيع مجموعة حاويات تتضمن فحص الجاهزية، بحيث تتلقى الحاوية نسبة استخدام الشبكة عند نجاح الفحص فقط.
تدعم مثيلات حاوية Azure أيضاً أدوات الفحص الحيوية، والتي يمكنك تكوينها لتقوم بإعادة تشغيل الحاوية غير السليمة تلقائياً.
تكوين YAML
على سبيل المثال، قم بإنشاء ملف readiness-probe.yaml
مع القصاصة البرمجية التالية التي تتضمن فحص الجاهزية. يحدد هذا الملف مجموعة حاويات تتكون من حاوية تقوم بتشغيل تطبيق ويب صغير. يتم توزيع التطبيق من الصورة العامة mcr.microsoft.com/azuredocs/aci-helloworld
. يتم أيضاً توضيح تطبيق الحاوية هذا في توزيع مثيل حاوية في Azure باستخدام Azure CLI وغيرها من تعليمات التشغيل السريع.
apiVersion: 2019-12-01
location: eastus
name: readinesstest
properties:
containers:
- name: mycontainer
properties:
image: mcr.microsoft.com/azuredocs/aci-helloworld
command:
- "/bin/sh"
- "-c"
- "node /usr/src/app/index.js & (sleep 240; touch /tmp/ready); wait"
ports:
- port: 80
resources:
requests:
cpu: 1.0
memoryInGB: 1.5
readinessProbe:
exec:
command:
- "cat"
- "/tmp/ready"
periodSeconds: 5
osType: Linux
restartPolicy: Always
ipAddress:
type: Public
ports:
- protocol: tcp
port: '80'
tags: null
type: Microsoft.ContainerInstance/containerGroups
ابدأ الأمر
يتضمن التوزيع خاصية command
لتعريف أمر بدء التشغيل عند بدء تشغيل الحاوية لأول مرة. تقبل هذه الخاصية صفيف من السلاسل. يحاكي هذا الأمر الوقت عندما يتم تشغيل تطبيق الويب وتكون الحاوية غير جاهزة.
أولاً، يقوم ببدء جلسة shell وتشغيل الأمر node
لبدء تشغيل تطبيق الويب. كما يبدأ أمراً بالسكون لمدة 240 ثانية، وبعد ذلك يقوم بإنشاء ملف يسمى ready
داخل الدليل /tmp
:
node /usr/src/app/index.js & (sleep 240; touch /tmp/ready); wait
أمر الجاهزية
يعرف readinessProbe
ملف YAML هذا الذي يدعم exec
أمر الاستعداد الذي يعمل كتحقق من الجاهزية. يختبر أمر الاستعداد هذا كمثال وجود الملف ready
في الدليل /tmp
.
ready
عندما لا يكون الملف موجودا، يتم إنهاء أمر الجاهزية بقيمة غير صفرية؛ تستمر الحاوية في التشغيل ولكن لا يمكن الوصول إليها. عند إنهاء الأمر بنجاح باستخدام التعليمة البرمجية للخروج 0، تكون الحاوية جاهزة للوصول.
تحدد الخاصية periodSeconds
أن أمر الجاهزية يجب أن ينفذ كل 5 ثوانٍ. يتم تشغيل فحص الجاهزية لمجموعة الحاويات طوال مدة بقائها.
مثال للتوزيع
قم بتشغيل الأمر التالي لتوزيع مجموعة حاويات باستخدام تكوين YAML السابق:
az container create --resource-group myResourceGroup --file readiness-probe.yaml
عرض فحوصات الاستعداد
في هذا المثال، أثناء أول 240 ثانية، يفشل أمر الجاهزية عند التحقق من وجود الملف ready
. يقوم رمز الحالة بإرجاع إشارات توضح أن الحاوية غير جاهزة.
يمكن عرض هذه الأحداث من مدخل Microsoft Azure أو Azure CLI. على سبيل المثال، يعرض المدخل أنه يتم تشغيل الأحداث من النوع Unhealthy
عند فشل أمر الجاهزية.
التحقق من جاهزية الحاوية
بعد بدء تشغيل الحاوية، يمكنك التحقق من عدم إمكانية الوصول إليها في البداية. بعد تكوين إعدادات تشغيل الخدمة، احصل على عنوان IP لمجموعة الحاويات:
az container show --resource-group myResourceGroup --name readinesstest --query "ipAddress.ip" --out tsv
حاول الوصول إلى الموقع أثناء فشل فحص الجاهزية:
wget <ipAddress>
يظهر الإخراج أن الموقع غير قابل للوصول في البداية:
wget 192.0.2.1
--2019-10-15 16:46:02-- http://192.0.2.1/
Connecting to 192.0.2.1... connected.
HTTP request sent, awaiting response...
بعد 240 ثانية، ينجح أمر الجاهزية، ما يشير إلى أن الحاوية جاهزة. الآن، عندما تقوم بتشغيل الأمر wget
، فإنه يعمل على نجاح ما يلي:
wget 192.0.2.1
--2019-10-15 16:46:02-- http://192.0.2.1/
Connecting to 192.0.2.1... connected.
HTTP request sent, awaiting response...200 OK
Length: 1663 (1.6K) [text/html]
Saving to: ‘index.html.1’
index.html.1 100%[===============================================================>] 1.62K --.-KB/s in 0s
2019-10-15 16:49:38 (113 MB/s) - ‘index.html.1’ saved [1663/1663]
عندما تكون الحاوية جاهزة، يمكنك أيضاً الوصول إلى تطبيق الويب عن طريق التصفح إلى عنوان IP باستخدام مستعرض الويب.
إشعار
يستمر تشغيل فحص الجاهزية لمجموعة الحاويات طوال مدة بقائها. إذا فشل أمر الجاهزية في وقت لاحق، تصبح الحاوية غير قابلة للوصول مرة أخرى.
الخطوات التالية
يمكن أن يكون فحص الجاهزية مفيداً في السيناريوهات التي تتضمن مجموعات متعددة الحاويات تتكون من حاويات تابعة. لمزيد من المعلومات حول سيناريوهات الحاويات المتعددة، راجع مجموعات الحاويات في مثيلات حاوية Azure.