البرنامج التعليمي: تغيير حجم مجموعة مقياس الجهاز الظاهري تلقائيا باستخدام Azure CLI

تنبيه

تشير هذه المقالة إلى CentOS، وهو توزيع Linux يقترب من حالة نهاية العمر الافتراضي (EOL). يرجى مراعاة استخدامك والتخطيط وفقا لذلك. لمزيد من المعلومات، راجع إرشادات نهاية العمر الافتراضي CentOS.

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

  • استخدام التحجيم التلقائي مع مجموعة تحجيم
  • إنشاء قواعد التحجيم التلقائي واستخدامها
  • مثيلات الجهاز الظاهري لاختبار الإجهاد، ومشغل قواعد التحجيم التلقائي
  • إعادة التحجيم التلقائي مع انخفاض الطلب

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

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

  • يتطلب هذا البرنامج التعليمي الإصدار 2.0.32 أو الأحدث من CLI Azure. إذا كنت تستخدم Azure Cloud Shell، يتم تثبيت أحدث إصدار بالفعل.

إنشاء مجموعة تحجيم

أنشئ مجموعة موارد باستخدام إنشاء مجموعة az.

az group create --name myResourceGroup --location eastus

الآن قم بإنشاء مجموعة مقياس الجهاز الظاهري باستخدام az vmss create. ينشئ المثال التالي مجموعة مقياس بعدد مثيلات 2، وينشئ مفاتيح SSH إذا لم تكن موجودة.

az vmss create \
  --resource-group myResourceGroup \
  --name myScaleSet \
  --image <SKU image> \
  --orchestration-mode Flexible \
  --instance-count 2 \
  --admin-username azureuser \
  --generate-ssh-keys

تعريف ملف تعريف التحجيم التلقائي

لتمكين التحجيم التلقائي على مجموعة تحجيم، يمكنك أولاً تعريف ملف تعريف التحجيم التلقائي. يُحدد ملف التعريف هذا سعة مجموعة التحجيم الافتراضية والحد الأدنى والحد الأقصى. تتيح لك هذه الحدود التحكم في التكلفة من خلال عدم إنشاء مثيلات الجهاز الظاهري باستمرار، وموازنة الأداء المقبول مع الحد الأدنى من المثيلات التي تبقى في حدث تقليل الحجم. إنشاء ملف تعريف تحجيم تلقائي باستخدام az monitor autoscale create. يُعين المثال التالي السعة الافتراضية والحد الأدنى لـ 2 من مثيلات الجهاز الظاهري وبحد أقصى 10:

az monitor autoscale create \
  --resource-group myResourceGroup \
  --resource myScaleSet \
  --resource-type Microsoft.Compute/virtualMachineScaleSets \
  --name autoscale \
  --min-count 2 \
  --max-count 10 \
  --count 2

إنشاء قاعدة للتحجيم التلقائي

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

إنشاء قاعدة باستخدام az monitor autoscale rule create التي تزيد من عدد مثيلات الجهاز الظاهري في مجموعة مقياس عندما يكون متوسط تحميل وحدة المعالجة المركزية أكبر من 70٪ على مدى فترة 5 دقائق. عند تشغيل القاعدة، يزداد عدد مثيلات الجهاز الظاهري بمقدار ثلاثة.

az monitor autoscale rule create \
  --resource-group myResourceGroup \
  --autoscale-name autoscale \
  --condition "Percentage CPU > 70 avg 5m" \
  --scale out 3

إنشاء قاعدة لتقليل التحجيم التلقائي

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

إنشاء قاعدة أخرى مع az monitor autoscale rule create التي تخفض عدد مثيلات الجهاز الظاهري في مجموعة التحجيم عندما ينخفض متوسط تحميل CPU إلى أقل من 30٪ خلال فترة 5 دقائق. يحدد المثال التالي القاعدة لتوسيع عدد مثيلات الجهاز الظاهري بمقدار مثيل واحد.

az monitor autoscale rule create \
  --resource-group myResourceGroup \
  --autoscale-name autoscale \
  --condition "Percentage CPU < 30 avg 5m" \
  --scale in 1

إنشاء تحميل CPU على مجموعة تحجيم

لاختبار قواعد التحجيم التلقائي، أنشئ بعض تحميل CPU على مثيلات الجهاز الظاهري في مجموعة التحجيم. تؤدي محاكاة تحميل CPU إلى تحجيم تلقائي لتوسع وزيادة عدد مثيلات الجهاز الظاهري. عندما تنخفض محاكاة تحميل CPU، تنخفض قواعد التحجيم التلقائي، ويقل عدد مثيلات الجهاز الظاهري.

للاتصال بمثيل فردي، راجع البرنامج التعليمي: الاتصال إلى مثيلات مجموعة مقياس الجهاز الظاهري

بمجرد تسجيل الدخول، قم بتثبيت الأداة المساعدة الإجهاد أو الإجهاد-ng . بدء تشغيل ⁧⁩10⁧⁩⁧⁩ من عمال الإجهاد⁧⁩ الذين ينشئون تحميل CPU. يعمل هؤلاء العمال لمدة 420 ثانية، وهو ما يكفي لجعل قواعد التحجيم التلقائي تُنفذ الإجراء المطلوب.

sudo apt-get update
sudo apt-get -y install stress
sudo stress --cpu 10 --timeout 420 &

عندما يعرض الإجهاد إخراجاً مشابهاً لـ stress: info: [2688] dispatching hogs: 10 cpu, 0 io, 0 vm, 0 hdd، اضغط على مفتاح "Enter" للعودة إلى الموجه.

لتأكيد أن الإجهاد يُنشئ تحميل CPU، افحص تحميل النظام النشط مع الأداة العليا:

top

اخرج من العليا، ثم أغلق الاتصال بمثيل الجهاز الظاهري. يستمر الإجهاد في العمل على مثيل الجهاز الظاهري.

Ctrl-c
exit

الاتصال بمثيل الجهاز الظاهري الثاني مع رقم المنفذ المُسرد من az vmss list-instance-connection-info السابق:

ssh azureuser@13.92.224.66 -p 50003

قم بتثبيت وتشغيل الإجهاد أو الإجهاد-ng، ثم ابدأ عشرة عمال على مثيل الجهاز الظاهري الثاني هذا.

sudo apt-get -y install stress
sudo stress --cpu 10 --timeout 420 &

مرة أخرى يعرض الإجهاد إخراجاً مشابهاً لـ stress: info: [2713] dispatching hogs: 10 cpu, 0 io, 0 vm, 0 hdd، اضغط على مفتاح "Enter" للعودة إلى الموجه.

أغلق الاتصال بمثيل الجهاز الظاهري الثاني. يستمر الإجهاد في العمل على مثيل الجهاز الظاهري.

exit

مراقبة قواعد التحجيم التلقائي النشط

لمراقبة عدد مثيلات الجهاز الظاهري في مجموعة التحجيم، استخدم Watch. تستغرق قواعد التحجيم التلقائي 5 دقائق لبدء عملية التوسع استجابةً لتحميل CPU المنشأ بواسطة الإجهاد على كل مثيل من مثيلات الجهاز الظاهري:

watch az vmss list-instances \
  --resource-group myResourceGroup \
  --name myScaleSet \
  --output table

بمجرد استيفاء حد CPU، تزيد قواعد التحجيم التلقائي من عدد مثيلات الجهاز الظاهري في مجموعة التحجيم. يُظهر الإخراج التالي ثلاثة أجهزة ظاهرية أُنشئت كتوسع تلقائي من مجموعة التحجيم:

Every 2.0s: az vmss list-instances --resource-group myResourceGroup --name myScaleSet --output table

  InstanceId  LatestModelApplied    Location    Name          ProvisioningState    ResourceGroup    VmId
------------  --------------------  ----------  ------------  -------------------  ---------------  ------------------------------------
           1  True                  eastus      myScaleSet_1  Succeeded            myResourceGroup  4f92f350-2b68-464f-8a01-e5e590557955
           2  True                  eastus      myScaleSet_2  Succeeded            myResourceGroup  d734cd3d-fb38-4302-817c-cfe35655d48e
           4  True                  eastus      myScaleSet_4  Creating             myResourceGroup  061b4c90-0d73-49fc-a066-19eab0b3d95c
           5  True                  eastus      myScaleSet_5  Creating             myResourceGroup  4beff8b9-4e65-40cb-9652-43899309da27
           6  True                  eastus      myScaleSet_6  Creating             myResourceGroup  9e4133dd-2c57-490e-ae45-90513ce3b336

بمجرد توقف الإجهاد على مثيلات الجهاز الظاهري الأولي، يعود متوسط تحميلCPU إلى الوضع الطبيعي. بعد 5 دقائق أخرى، تخفض قواعد التحجيم التلقائي عدد مثيلات الجهاز الظاهري. تُزيل إجراءات التخفيض مثيلات الجهاز الظاهري ذات المُعرفات الأعلى أولًا. عندما تستخدم مجموعة التحجيم مجموعات التوفر، أو مناطق التوفر، تتوزع إجراءات التخفيض بالتساوي عبر مثيلات الجهاز الظاهري. يظهر إخراج المثال التالي مثيل جهاز ظاهري محذوف بسبب التخفيض التلقائي لمجموعة التحجيم:

6  True                  eastus      myScaleSet_6  Deleting             myResourceGroup  9e4133dd-2c57-490e-ae45-90513ce3b336

إنهاء watch بواسطة Ctrl-c. تستمر مجموعة التحجيم في التخفيض كل 5 دقائق وإزالة واحد من مثيل الجهاز الظاهري حتى تصل إلى الحد الأدنى لعدد المثيلات وهو اثنان.

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

لإزالة مجموعة المقياس والموارد الإضافية، احذف مجموعة الموارد وكافة مواردها باستخدام az group delete. تُعيد المعلمة --no-wait التحكم إلى الموجه دون انتظار إكمال العملية. المعلمة --yes تؤكد رغبتك في حذف الموارد دون مطالبة إضافية للقيام بذلك.

az group delete --name myResourceGroup --yes --no-wait

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

في هذا البرنامج التعليمي، تعلمت كيفية التحجيم التلقائي بتوسيع مجموعة التحجيم، أو تخفيضها باستخدام Azure CLI:

  • استخدام التحجيم التلقائي مع مجموعة تحجيم
  • إنشاء قواعد التحجيم التلقائي واستخدامها
  • مثيلات الجهاز الظاهري لاختبار الإجهاد، ومشغل قواعد التحجيم التلقائي
  • إعادة التحجيم التلقائي مع انخفاض الطلب