إشعار
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تسجيل الدخول أو تغيير الدلائل.
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تغيير الدلائل.
لمواكبة متطلبات التطبيق في AKS، قد تحتاج إلى ضبط عدد العقد التي تشغل أحمال العمل الخاصة بك. يراقب مكون التحجيم التلقائي لنظام المجموعة وحدات الجراب في نظام المجموعة التي لا يمكن جدولتها بسبب قيود الموارد. عندما يكتشف مقياس المجموعة التلقائي المشكلات، فإنه يقوم بزيادة عدد العقد في تجمع العقد لتلبية متطلبات التطبيق. كما أنه يتحقق بانتظام من العقد غير المستغلة ويزيلها عندما يمكن إعادة جدولة أحمال العمل بأمان واستيفاء شروط تقليص الحجم.
توضح هذه المقالة كيفية تمكين التحجيم التلقائي لنظام المجموعة وإدارته في AKS، والذي يستند إلى إصدار Kubernetes مفتوح المصدر.
قبل البدء
تتطلب هذه المقالة الإصدار 2.0.76 من Azure CLI أو أحدث. قم بتشغيل az --version للعثور على الإصدار. إذا كنت بحاجة إلى التثبيت أو الترقية، فراجع تثبيت Azure CLI.
تمكين أو تعطيل مقياس المجموعة التلقائي على نظام مجموعة
هام
مقياس المجموعة التلقائي هو مكون من .Kubernetes على الرغم من أن نظام مجموعة AKS يستخدم Virtual Machine Scale Sets للعقد، لا تقم بتمكين الإعدادات أو تحريرها يدويا للتحجيم التلقائي لمجموعة التحجيم. دع مقياس كتلة Kubernetes التلقائي يدير إعدادات المقياس المطلوبة. لمزيد من المعلومات، راجع هل يمكنني تعديل موارد AKS في مجموعة موارد العقدة؟
تمكين مقياس المجموعة التلقائي على نظام مجموعة جديد
إنشاء مجموعة موارد باستخدام
az group createالأمر .az group create --name myResourceGroup --location eastusإنشاء نظام مجموعة AKS باستخدام
az aks createالأمر وتمكين وتكوين مقياس المجموعة التلقائي على تجمع العقدة لنظام المجموعة باستخدام المعلمة--enable-cluster-autoscalerوتحديد عقدة--min-countو--max-count. يقوم الأمر المثال التالي بإنشاء نظام مجموعة مع عقدة واحدة مدعومة بمجموعة مقياس الجهاز الظاهري، وتمكين مقياس المجموعة التلقائي، وتعيين واحد كحد أدنى والحد الأقصى من ثلاث عقد:az aks create \ --resource-group myResourceGroup \ --name myAKSCluster \ --node-count 1 \ --vm-set-type VirtualMachineScaleSets \ --load-balancer-sku standard \ --enable-cluster-autoscaler \ --min-count 1 \ --max-count 3 \ --generate-ssh-keysيستغرق بضع دقائق لإنشاء المجموعة وتكوين إعدادات مقياس المجموعة التلقائي.
تمكين أداة التحجيم التلقائي لنظام المجموعة على نظام مجموعة موجود
تحديث نظام مجموعة موجود باستخدام az aks update الأمر وتمكين وتكوين مقياس المجموعة التلقائي على تجمع العقدة باستخدام المعلمة --enable-cluster-autoscaler وتحديد عقدة --min-count و --max-count. يحدث الأمر المثال التالي مجموعة AKS موجودة لتمكين مقياس المجموعة التلقائي على تجمع العقدة للمجموعة وتعيين واحد كحد أدنى والحد الأقصى من ثلاث عقد:
az aks update \
--resource-group myResourceGroup \
--name myAKSCluster \
--enable-cluster-autoscaler \
--min-count 1 \
--max-count 3
يستغرق بضع دقائق لتحديث الكتلة وتكوين إعدادات مقياس المجموعة التلقائي.
تعطيل مقياس المجموعة التلقائي على نظام مجموعة
تعطيل مقياس المجموعة التلقائي باستخدام az aks update الأمر والمعلمة --disable-cluster-autoscaler .
az aks update \
--resource-group myResourceGroup \
--name myAKSCluster \
--disable-cluster-autoscaler
لا تتم إزالة العقد عند تعطيل مقياس المجموعة التلقائي.
إشعار
يمكنك تغيير حجم نظام المجموعة يدويا بعد تعطيل مقياس المجموعة التلقائي باستخدام az aks scale الأمر . إذا كنت تستخدم التحجيم التلقائي للجراب الأفقي، فإنه يستمر في التشغيل مع تعطيل التحجيم التلقائي لنظام المجموعة، ولكن قد ينتهي الأمر بوحدات الجراب غير قادرة على جدولتها إذا كانت جميع موارد العقدة قيد الاستخدام.
إعادة تمكين مقياس المجموعة التلقائي على نظام مجموعة
يمكنك إعادة تمكين مقياس المجموعة التلقائي على نظام مجموعة موجود باستخدام az aks update الأمر وتحديد --enable-cluster-autoscaler--min-countالمعلمات و و--max-count.
تمكين أو تعطيل مقياس المجموعة التلقائي على تجمعات العقد
استخدام مقياس المجموعة التلقائي على تجمعات عقد متعددة
يمكنك استخدام مقياس المجموعة التلقائي مع تجمعات عقد متعددة ويمكن تمكين مقياس المجموعة التلقائي على كل تجمع عقدة فردية وتمرير قواعد التحجيم التلقائي الفريدة لهم.
تحديث الإعدادات على تجمع عقدة موجود باستخدام az aks nodepool update الأمر .
az aks nodepool update \
--resource-group myResourceGroup \
--cluster-name myAKSCluster \
--name nodepool1 \
--update-cluster-autoscaler \
--min-count 1 \
--max-count 5
تعطيل مقياس المجموعة التلقائي على تجمع عقدة
تعطيل مقياس المجموعة التلقائي على تجمع عقدة az aks nodepool update باستخدام الأمر والمعلمة --disable-cluster-autoscaler .
az aks nodepool update \
--resource-group myResourceGroup \
--cluster-name myAKSCluster \
--name nodepool1 \
--disable-cluster-autoscaler
إعادة تمكين مقياس المجموعة التلقائي على تجمع عقدة
يمكنك إعادة تمكين مقياس المجموعة التلقائي على تجمع عقدة باستخدام az aks nodepool update الأمر وتحديد --enable-cluster-autoscaler--min-countالمعلمات و و--max-count.
إشعار
إذا كنت تخطط لاستخدام مقياس المجموعة التلقائي مع تجمعات العقد التي تمتد عبر مناطق متعددة والاستفادة من ميزات الجدولة المتعلقة ب المناطق، مثل جدولة طوبولوجيا وحدة التخزين، نوصي بأن يكون لديك تجمع عقدة واحد لكل منطقة وتمكين --balance-similar-node-groups من خلال ملف تعريف مقياس تلقائي. وهذا يضمن أن التحجيم التلقائي يمكنه زيادة الحجم بنجاح والحفاظ على أحجام تجمعات العقد متوازنة.
تحديث إعدادات التحجيم التلقائي لنظام المجموعة
مع تغير متطلبات التطبيق الخاص بك، قد تحتاج إلى ضبط عدد عقدة التحجيم التلقائي لنظام المجموعة لتوسيع نطاقها بكفاءة.
قم بتغيير عدد العقد باستخدام az aks update الأمر وتحديث مقياس المجموعة التلقائي باستخدام المعلمة --update-cluster-autoscaler وتحديد العقدة --min-count المحدثة و --max-count.
az aks update \
--resource-group myResourceGroup \
--name myAKSCluster \
--update-cluster-autoscaler \
--min-count 1 \
--max-count 5
إشعار
يفرض مقياس المجموعة التلقائي الحد الأدنى للعدد في الحالات التي ينخفض فيها العدد الفعلي إلى أقل من الحد الأدنى بسبب عوامل خارجية، مثل أثناء الإخلاء الموضعي أو عند تغيير الحد الأدنى لقيمة العد من واجهة برمجة تطبيقات AKS.
استخدام ملف تعريف التحجيم التلقائي لنظام المجموعة
يمكنك تكوين المزيد من التفاصيل الدقيقة لأداة التحجيم التلقائي لنظام المجموعة عن طريق تغيير القيم الافتراضية في ملف تعريف التحجيم التلقائي على مستوى المجموعة. على سبيل المثال، حدث تقليص الحجم يحدث بعد أن يتم استخدام العقد بشكل أقل بعد 10 دقائق. إذا كان لديك أحمال عمل تعمل كل 15 دقيقة، فقد تحتاج إلى تغيير ملف تعريف التحجيم التلقائي لتوسيع نطاق العقد غير المستخدمة بشكل جيد بعد 15 أو 20 دقيقة. عند تمكين مقياس المجموعة التلقائي يتم استخدام ملف تعريف افتراضي إلا إذا قمت بتحديد إعدادات مختلفة.
هام
يؤثر ملف تعريف التحجيم التلقائي لنظام المجموعة على كافة تجمعات العقد التي تستخدم مقياس المجموعة التلقائي. لا يمكنك تعيين ملف تعريف مقياس تلقائي لكل تجمع عقدة. عند تعيين ملف التعريف، تبدأ أي تجمعات عقد موجودة مع تمكين التحجيم التلقائي لنظام المجموعة على الفور باستخدام ملف التعريف.
إعدادات ملف تعريف التحجيم التلقائي لنظام المجموعة
يسرد الجدول التالي الإعدادات المتوفرة لملف تعريف مقياس المجموعة التلقائي:
| الإعدادات | الوصف | القيمة الافتراضية |
|---|---|---|
scan-interval |
عدد المرات التي تتم فيها إعادة تقييم نظام المجموعة لتوسيع نطاقها أو تقليصها. | 10 ثوان |
scale-down-delay-after-add |
كم من الوقت بعد توسيع نطاق هذا التوسيع يستأنف التقييم. | 10 دقيقة |
scale-down-delay-after-delete |
كم من الوقت بعد حذف العقدة الذي يستأنف التقييم بتقليصه. | scan-interval |
scale-down-delay-after-failure |
كم من الوقت بعد تقليص الفشل الذي يستأنف التقييم بتقليصه. | ثلاث دقائق |
scale-down-unneeded-time |
كم من الوقت يجب أن تكون العقدة غير ضرورة قبل أن تكون مؤهلة للتحجيم. | 10 دقيقة |
scale-down-unready-time |
كم من الوقت يجب عدم الحاجة إلى عقدة غير مقروءة قبل أن تكون مؤهلة للتحجيم. | 20 دقيقة |
ignore-daemonsets-utilization |
ما إذا كان سيتم تجاهل وحدات الجراب DaemonSet عند حساب استخدام الموارد لتقليص الحجم. | false |
daemonset-eviction-for-empty-nodes |
ما إذا كان سيتم إنهاء pods DaemonSet بأمان من العقد الفارغة. | false |
daemonset-eviction-for-occupied-nodes |
ما إذا كان سيتم إنهاء pods DaemonSet بأمان من العقد غير الفارغة. | true |
scale-down-utilization-threshold |
القيمة القصوى بين مجموع طلبات وحدة المعالجة المركزية ومجموع طلبات الذاكرة لجميع الوحدات التي تعمل على العقدة مقسومة على المورد المخصص المقابل للعقدة، حيث يمكن النظر في العقدة للتقليل من الأبعاد أدناه. | 0.5 |
max-graceful-termination-sec |
الحد الأقصى لعدد الثوان التي ينتظرها مقياس المجموعة التلقائي لإنهاء الجراب عند محاولة تقليص عقدة. | 600 ثانية |
balance-similar-node-groups |
يكتشف تجمعات العقد المماثلة ويوازن عدد العقد بينها. | false |
expander |
يستخدم نوع موسع تجمع العقدة في توسيع النطاق. تتضمن most-podsالقيم المحتملة و randomleast-wasteو و.priority |
random |
skip-nodes-with-local-storage |
إذا true، لا يحذف التحجيم التلقائي لنظام المجموعة العقد ذات الحجيرات ذات التخزين المحلي، على سبيل المثال، EmptyDir أو HostPath. |
false |
skip-nodes-with-system-pods |
إذا true، فإن التحجيم التلقائي لنظام المجموعة لا يحذف العقد مع pods من kube-system (باستثناء DaemonSet أو pods المعكوسة). |
true |
max-empty-bulk-delete |
الحد الأقصى لعدد العقد الفارغة التي يمكن حذفها في نفس الوقت. | عشر عقد |
new-pod-scale-up-delay |
بالنسبة لسيناريوهات مثل مقياس الاندفاع/الدفعة حيث لا تريد أن يعمل CA قبل أن يتمكن مجدول Kubernetes من جدولة جميع القرون، يمكنك إخبار CA بتجاهل القرون غير المجدولة قبل أن تصل إلى عمر معين. | 0 ثانية |
max-total-unready-percentage |
الحد الأقصى للنسبة المئوية للعقد غير الجاهزة في الكتلة. بعد تجاوز هذه النسبة المئوية، يوقف المرجع المصدق العمليات. | 45% |
max-node-provision-time |
الحد الأقصى للوقت الذي ينتظره التحجيم التلقائي لتوفير عقدة. | 15 دقيقة |
ok-total-unready-count |
عدد العقد غير المقروءة المسموح بها، بغض النظر عن النسبة المئوية القصوى الإجمالية غير المقروءة. | ثلاث عقد |
إشعار
معلمات ignore-daemonsets-use و daemonset-eviction-for-empty-nodes و daemonset-eviction-for-occupied-nodes هي GA من إصدار API 2024-05-01.
تعيين ملف تعريف التحجيم التلقائي لنظام المجموعة على نظام مجموعة جديد
إنشاء نظام مجموعة AKS باستخدام az aks create الأمر وتعيين ملف تعريف مقياس المجموعة التلقائي باستخدام المعلمة cluster-autoscaler-profile .
az aks create \
--resource-group myResourceGroup \
--name myAKSCluster \
--node-count 1 \
--enable-cluster-autoscaler \
--min-count 1 \
--max-count 3 \
--cluster-autoscaler-profile scan-interval=30s \
--generate-ssh-keys
تعيين ملف تعريف التحجيم التلقائي لنظام المجموعة على نظام مجموعة موجود
قم بتعيين مقياس المجموعة التلقائي على نظام مجموعة موجود باستخدام az aks update الأمر والمعلمة cluster-autoscaler-profile . يقوم المثال التالي بتكوين إعداد الفاصل الزمني للمسح الضوئي على شكل 30s:
az aks update \
--resource-group myResourceGroup \
--name myAKSCluster \
--cluster-autoscaler-profile scan-interval=30s
تكوين ملف تعريف أداة التحجيم التلقائي لنظام المجموعة للتحجيم الشديد
إشعار
لا يوصى بتقليص الحجم بقوة للمجموعات التي تواجه عمليات توسيع وتحجيم متكررة خلال فواصل زمنية قصيرة، حيث يمكن أن يؤدي ذلك إلى أوقات توفير عقدة موسعة في ظل هذه الظروف. يمكن أن تساعد الزيادة scale-down-delay-after-add في هذه الظروف عن طريق الاحتفاظ بالعقدة لفترة أطول للتعامل مع أحمال العمل الواردة.
يقوم الأمر التالي بتكوين ملف تعريف تقليصي قوي. يقوم بفحص نظام المجموعة كل 30 ثانية، يستأنف تقييم تقليص الحجم مباشرة بعد إضافة عقدة وبعد دقيقة واحدة من الفشل، ويجعل العقد غير الضرورية وغير المقروءة مؤهلة للتحجيم بعد ثلاث دقائق، ويحد من الإنهاء بأمان إلى 30 ثانية، ويسمح بحذف ما يصل إلى 1000 عقدة فارغة في وقت واحد، ويرفع حدود العقدة غير المقروءة إلى 100 بالمائة أو 1000 عقدة. كما أنه يحتفظ بشكل صريح بالسلوك الافتراضي لعدم تخطي العقد مع التخزين المحلي والانتظار حتى 15 دقيقة لتوفير عقدة.
az aks update \
--resource-group myResourceGroup \
--name myAKSCluster \
--cluster-autoscaler-profile scan-interval=30s,scale-down-delay-after-add=0m,scale-down-delay-after-failure=1m,scale-down-unneeded-time=3m,scale-down-unready-time=3m,max-graceful-termination-sec=30,skip-nodes-with-local-storage=false,max-empty-bulk-delete=1000,max-total-unready-percentage=100,ok-total-unready-count=1000,max-node-provision-time=15m
تكوين ملف تعريف التحجيم التلقائي لنظام المجموعة لأحمال العمل الاندفاعية
يقوم الأمر التالي بتكوين ملف تعريف لأحمال العمل الاندفاعية. يقوم بفحص المجموعة كل 20 ثانية، ويوقف تقييم التحجيم مؤقتا لمدة 10 دقائق بعد إضافة عقدة للاحتفاظ بسعة الاندفاعات الواردة، ويستأنف التقييم بعد دقيقة واحدة من الفشل، ويجعل العقد غير الضرورية وغير المقروءة مؤهلة للتحجيم بعد خمس دقائق، ويحد من الإنهاء بأمان إلى 30 ثانية، ويسمح بحذف ما يصل إلى 100 عقدة فارغة في وقت واحد، ورفع حدود العقدة غير المقروءة إلى 100 بالمائة أو 1000 عقدة. كما أنه يحتفظ بشكل صريح بالسلوك الافتراضي لعدم تخطي العقد مع التخزين المحلي والانتظار حتى 15 دقيقة لتوفير عقدة.
az aks update \
--resource-group "myResourceGroup" \
--name myAKSCluster \
--cluster-autoscaler-profile scan-interval=20s,scale-down-delay-after-add=10m,scale-down-delay-after-failure=1m,scale-down-unneeded-time=5m,scale-down-unready-time=5m,max-graceful-termination-sec=30,skip-nodes-with-local-storage=false,max-empty-bulk-delete=100,max-total-unready-percentage=100,ok-total-unready-count=1000,max-node-provision-time=15m
إعادة تعيين ملف تعريف مقياس تلقائي الكتلة إلى القيم الافتراضية
إعادة تعيين ملف تعريف التحجيم التلقائي لنظام المجموعة باستخدام az aks update الأمر .
az aks update \
--resource-group myResourceGroup \
--name myAKSCluster \
--cluster-autoscaler-profile ""
استخدام ProvisioningRequest مع مقياس المجموعة التلقائي
ProvisioningRequest هو مورد مخصص يمكنك استخدامه لطلب الموارد لمجموعة من الحجيرات ذات الصلة. عامل التحجيم التلقائي لنظام المجموعة يعامل هذه القرون كوحدة واحدة. استنادا إلى فئة التوفير التي تحددها، يمكن لأداة التحجيم التلقائي لنظام المجموعة إما حجز الموارد الموجودة للحجيرات أو توسيع نطاق نظام المجموعة.
إشعار
-
ProvisioningRequestيتطلب الدعم نظام مجموعة AKS يعمل بالإصدار 1.33 من Kubernetes أو أحدث. - ضع في اعتبارك استخدام ملف تعريف تضييقي عند استخدام
ProvisioningRequestعقد غير مستخدمة من عمليات توسيع جزئية أو غير منجزة تتم إزالتها بسرعة.
| فئة التوفير | الوصف |
|---|---|
check-capacity.autoscaling.x-k8s.io |
التحقق من أن نظام المجموعة يحتوي على موارد كافية للحجيرات المحددة. إذا كانت الموارد متوفرة، يحجزها مقياس المجموعة التلقائي لمدة ProvisioningRequest 10 دقائق لمنع الآخرين ProvisioningRequests من المطالبة بنفس الموارد. |
best-effort-atomic-scale-up.autoscaling.x-k8s.io |
يقوم التحجيم التلقائي لنظام المجموعة بمحاولة بذل أفضل جهد لتوفير الموارد المطلوبة الكاملة في عملية توسيع نطاق واحدة. إذا لم يتمكن من توفير كل ذلك، ProvisioningRequest يفشل، ويعيد مقياس المجموعة التلقائي المحاولة بعد فترة التراجع. |
للحصول على مثال شامل يوضح تكامل Kueue مع مقياس المجموعة التلقائي و ProvisioningRequest، راجع تكوين Kueue باستخدام مقياس المجموعة التلقائي على AKS.
استرداد سجلات المقاييس التلقائية للكتلة وحالتها
يمكنك استرداد السجلات وتحديثات الحالة من مقياس المجموعة التلقائي للمساعدة في تشخيص أحداث التحجيم التلقائي وتصحيحها. تدير AKS مقياس المجموعة التلقائي نيابة عنك وتديره في مستوى التحكم المدار. لتجميع سجلات وحدة التحكم الخاصة به، قم بإنشاء إعداد تشخيص Azure Monitor لنظام مجموعة AKS في مدخل Azure أو استخدم az monitor diagnostic-settings create، وقم بتمكين cluster-autoscaler فئة السجل.
قم بإعداد قاعدة لسجلات الموارد لدفع سجلات التحجيم التلقائي لنظام المجموعة إلى Log Analytics باستخدام تكوين مجموعة سجل الموارد للحصول على إرشادات وحدة التحكم AKS. تأكد من تحديد المربع عند
cluster-autoscalerتحديد خيارات السجلات.حدد قسم Logs على نظام المجموعة الخاص بك.
إذا كانت إعدادات التشخيص تستخدم وضع التشخيص Azure، أدخل الاستعلام التالي في Log Analytics:
AzureDiagnostics | where Category == "cluster-autoscaler"إذا كانت إعدادات التشخيص تستخدم الوضع الخاص بالموارد، أدخل الاستعلام التالي بدلا من ذلك:
AKSControlPlane | where Category == "cluster-autoscaler"عرض مقياس التحجيم التلقائي للمجموعة لم يتم تشغيل الأحداث على CLI.
kubectl get events --field-selector source=cluster-autoscaler,reason=NotTriggerScaleUpعرض أحداث تحذير التحجيم التلقائي لنظام المجموعة على CLI.
kubectl get events --field-selector source=cluster-autoscaler,type=Warningيقوم التحجيم التلقائي لنظام المجموعة أيضا بكتابة الحالة الصحية إلى مسمى
configmapcluster-autoscaler-status. يمكنك استرداد هذه الحالة باستخدام الأمر التاليkubectl:kubectl get configmap -n kube-system cluster-autoscaler-status -o yaml
لمزيد من المعلومات، راجع الأسئلة المتداولة حول مشروع Kubernetes/autoscaler GitHub.
مقاييس التدرج التلقائي في العنقود
يمكنك استخدام مقاييس مستوى التحكم (معاينة) مع خدمة مدارة Azure Monitor ل Prometheus لجمع مقاييس التحجيم التلقائي لنظام المجموعة.
controlplane-cluster-autoscaler يتم تعطيل هدف القصاصة بشكل افتراضي، لذلك يجب تمكينه لجمع هذه المقاييس.
تتضمن cluster_autoscaler_unschedulable_pods_count المقاييس المتوفرة و cluster_autoscaler_unneeded_nodes_count، والتي تعرض عدد الحجيرات التي لا يمكن جدولتها والعقد التي تم وضع علامة عليها كمرشحة للإزالة. يمكنك أيضا مراقبة ما إذا كان نظام المجموعة آمنا للتحجيم التلقائي مع cluster_autoscaler_cluster_safe_to_autoscale وما إذا كان تقليص الحجم في فترة تهدئة باستخدام cluster_autoscaler_scale_down_in_cooldown.
المحتوى ذو الصلة
يوضح لك هذا المقال كيفية قياس عدد عقد AKS تلقائيا. يمكنك أيضًا استخدام مقياس تلقائي للقرن الأفقي لضبط عدد القرون التي تقوم بتشغيل التطبيق تلقائيًّا. للحصول على خطوات حول استخدام مقياس تلقائي للقرن الأفقي، راجع تطبيقات المقياس في AKS.
للمساعدة في تحسين استخدام موارد نظام المجموعة وتحرير وحدة المعالجة المركزية والذاكرة لوحدات الجراب الأخرى، راجع التحجيم التلقائي للجراب العمودي.