موضع المنطقة التلقائي في Azure Kubernetes Service (معاينة)

يحدد موضع المنطقة التلقائي في خدمة Azure Kubernetes ‏(AKS) بشكل ديناميكي أفضل مجموعة من مناطق التوفر لتجمع عقدة. لا تحتاج إلى تحديد المناطق يدويا لكل منطقة وتركيبة VM SKU. عند إنشاء تجمع عقدة أو تحديثه باستخدام --zones auto، تضع AKS الأجهزة الظاهرية (VMs) في مناطق التوفر التي لديها سعة لوحدة حفظ المخزون المطلوبة في المنطقة المستهدفة وتطبق نسبة مثيل قصوى تبلغ 50% لكل منطقة.

توضح هذه المقالة كيفية إنشاء أو تحديث تجمعات عقد AKS التي تستخدم موضع المنطقة التلقائي.

كيفية عمل وضع المنطقة التلقائي

عند تحديد --zones auto (أو availabilityZones: ["auto"] في ملف تعريف تجمع العامل)، يستخدم AKS نهج وضع المنطقة التلقائية لحساب Azure لتحديد المناطق وتوزيع العقد. لا تحتاج إلى تحديد أرقام المنطقة أو الحفاظ على تكوينات منطقة مختلفة لكل منطقة وVM SKU.

يعمل وضع المنطقة التلقائي كما يلي:

  1. تقوم AKS بتقييم مناطق التوفر في المنطقة المستهدفة التي يمكن أن تدعم وحدة SKU للجهاز الظاهري المطلوبة.
  2. تحدد AKS في البداية ما يصل إلى ثلاث مناطق متاحة وتوضع العقد وفقا لنهج وضع المنطقة التلقائية. لا يمكن أن تحتوي أي منطقة واحدة على أكثر من 50% من تجمع العقدة.
  3. أثناء عمليات التوسع اللاحقة، تعيد AKS تقييم توفر المنطقة. إذا Azure يضيف منطقة إلى المنطقة أو يجعل VM SKU متوفرا في منطقة أخرى، فقد تضع AKS عقدا جديدة في تلك المنطقة عندما يسمح نهج الموضع والقدرة المتاحة بذلك. لا تحتاج إلى تحديث تكوين تجمع العقدة.

مهم

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

يعالج هذا النهج نقاط الألم الشائعة مع تحديد المناطق يدويا:

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

القيود والاعتبارات

  • يدعم وضع المنطقة التلقائي المناطق التي تدعم منطقة التوفر فقط. لمزيد من المعلومات، راجع قائمة مناطق أزور.
  • يدعم موضع المنطقة التلقائي إنشاء وتحديث كل من تجمعات العقد المستندة إلى Virtual Machine Scale Sets وتجمعات العقد المستندة إلى Virtual Machines.
  • الحد الأقصى لكل منطقة هو 50% من العقد. لا يزال من الممكن أن تفشل عملية الإنشاء أو التحجيم إذا لم يتمكن Azure من تخصيص العقد المطلوبة أثناء الالتزام بالحد الأقصى لكل منطقة.
  • الموضع التلقائي للمنطقة مخصص لأحمال العمل التي تمتد عبر المنطقة . بالنسبة لأحمال العمل المتوافقة مع المنطقة (حيث يتم تثبيت كل تجمع عقدة في منطقة واحدة)، تابع تحديد المنطقة بشكل صريح باستخدام --zones 1و --zones 2وهكذا.

المتطلبات المسبقه

مهم

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

aks-preview تثبيت ملحق CLI

قم بتثبيت ملحق aks-preview CLI باستخدام az extension add الأمر .

az extension add --name aks-preview

قم بتحديث الملحق للتأكد من تثبيت أحدث إصدار باستخدام az extension update الأمر .

az extension update --name aks-preview

تسجيل VmssAutomaticZonePlacement العلامات المميزة

تسجيل علامة الميزة باستخدام az feature register الأمر :

az feature register \
  --namespace Microsoft.Compute \
  --name VmssAutomaticZonePlacement

تحقق من حالة التسجيل باستخدام az feature show الأمر :

az feature show \
  --namespace Microsoft.Compute \
  --name VmssAutomaticZonePlacement \
  --query properties.state \
  --output tsv

انتظر حتى يرجع Registered الأمر قبل المتابعة.

إنشاء نظام مجموعة AKS مع وضع المنطقة التلقائي (معاينة)

قم بإنشاء مجموعة AKS جديدة مع تجمع عقدة نظام يستند إلى Virtual Machine Scale Sets أو يستند إلى Virtual Machines يستخدم موضع المنطقة التلقائي باستخدام az aks create الأمر مع --zones auto:

az aks create \
  --resource-group example-rg \
  --name example-cluster \
  --node-vm-size Standard_D8s_v5 \
  --node-count 10 \
  --zones auto

تختار AKS المناطق التي لديها سعة Standard_D8s_v5 في المنطقة المستهدفة وتنشر العقد العشرة عبرها، مع عدم وجود منطقة واحدة تحتوي على أكثر من 50% من العقد.

إضافة تجمع عقدة مع موضع المنطقة التلقائي (معاينة)

أضف تجمع عقدة جديد يستند إلى Virtual Machine Scale Sets أو يستند إلى Virtual Machines إلى مجموعة موجودة باستخدام az aks nodepool add الأمر مع --zones auto:

az aks nodepool add \
  --resource-group example-rg \
  --cluster-name example-cluster \
  --name userpoolauto \
  --node-vm-size Standard_D8s_v5 \
  --node-count 6 \
  --zones auto

تحديث تجمع عقدة موجود لاستخدام موضع المنطقة التلقائي (معاينة)

قم بتحديث تجمع عقدة قائم على Virtual Machine Scale Sets أو مستند إلى Virtual Machines لاستخدام موضع المنطقة التلقائي باستخدام az aks nodepool update الأمر مع --zones auto:

az aks nodepool update \
  --resource-group example-rg \
  --cluster-name example-cluster \
  --name nodepool1 \
  --zones auto

تقوم AKS بتحديث تجمع العقدة الحالي من خلال عملية متجددة:

  1. تضيف AKS عقد طفرة تستخدم موضع المنطقة التلقائي.
  2. تطوق AKS العقد الموجودة وتستنزفها.
  3. تزيل AKS العقد الموجودة بعد انتقال أحمال العمل الخاصة بها إلى عقد الطفرة.

تحترم العملية إعدادات الترقية التالية التي تقوم بتكوينها على تجمع العقدة:

  • الحد الأقصى للطفرة (--max-surge): يتحكم في عدد العقد الإضافية التي تضيفها AKS أثناء التحديث. تكمل القيمة الأعلى التحديث بشكل أسرع ولكنها تتطلب المزيد من الحصة النسبية للحساب وسعة IP للشبكة الفرعية.
  • مهلة استنزاف العقدة (--drain-timeout): يتحكم في المدة التي تنتظرها AKS لإخلاء الجراب على عقدة قبل فشل عملية الاستنزاف.
  • مدة نقع العقدة (--node-soak-duration): يتحكم في المدة التي تنتظرها AKS بعد أن تصبح عقدة جديدة جاهزة قبل المتابعة إلى الدفعة التالية.

قبل بدء التحديث، تأكد من أن لديك حصة حسابية كافية وسعة IP للشبكة الفرعية لعقد الطفرة وأن ميزانيات تعطيل الجراب تسمح للعقد بالاستنزاف.

التحقق من موضع المنطقة

بعد إنشاء أو تحديث المجموعة أو تجمع العقدة، تحقق من المناطق التي حددتها AKS باستخدام az aks show الأمر .

az aks show \
 --name example-cluster \
 --resource-group example-rg \
 --query agentPoolProfiles[].availabilityZones \
 --output tsv

يمكنك أيضا استخدام kubectl لتأكيد توزيع العقدة عبر المناطق.

kubectl get nodes -o custom-columns='NAME:metadata.name, REGION:metadata.labels.topology\.kubernetes\.io/region, ZONE:metadata.labels.topology\.kubernetes\.io/zone'

مثال على الإخراج:

NAME                                REGION   ZONE
aks-nodepool1-12345678-vmss000000   eastus   eastus-1
aks-nodepool1-12345678-vmss000001   eastus   eastus-2
aks-nodepool1-12345678-vmss000002   eastus   eastus-3
...