استخدام مقياس المجموعة التلقائي في خدمة Azure Kubernetes (AKS)
لمواكبة متطلبات التطبيق في AKS، قد تحتاج إلى ضبط عدد العقد التي تشغل أحمال العمل الخاصة بك. يراقب مكون التحجيم التلقائي لنظام المجموعة وحدات الجراب في نظام المجموعة التي لا يمكن جدولتها بسبب قيود الموارد. عندما يكتشف مقياس المجموعة التلقائي المشكلات، فإنه يقوم بزيادة عدد العقد في تجمع العقد لتلبية متطلبات التطبيق. كما أنه يتحقق بانتظام من العقد لعدم وجود وحدات الجراب قيد التشغيل ويقلص عدد العقد حسب الحاجة.
توضح هذه المقالة كيفية تمكين التحجيم التلقائي لنظام المجموعة وإدارته في AKS، والذي يستند إلى إصدار Kubernetes مفتوح المصدر.
قبل البدء
تتطلب هذه المقالة الإصدار 2.0.76 من Azure CLI أو أحدث. قم بتشغيل az --version
للعثور على الإصدار. إذا كنت بحاجة إلى التثبيت أو الترقية، فراجع تثبيت Azure CLI.
استخدام مقياس المجموعة التلقائي على نظام مجموعة AKS
هام
مقياس المجموعة التلقائي هو مكون من .Kubernetes على الرغم من أن مجموعة AKS تستخدم مجموعة مقياس جهاز ظاهري للعقد، لا تقم بتمكين الإعدادات أو تحريرها يدويا للتحجيم التلقائي لمجموعة التحجيم. دع مقياس كتلة 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 القيم المحتملة و least-waste random و و.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. إذا كنت تستخدم CLI لتحديث هذه العلامات، فيرجى التأكد من أنك تستخدم الإصدار 2.63 أو أحدث.
تعيين ملف تعريف التحجيم التلقائي لنظام المجموعة على نظام مجموعة جديد
إنشاء نظام مجموعة 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
في هذه الظروف عن طريق الاحتفاظ بالعقدة لفترة أطول للتعامل مع أحمال العمل الواردة.
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
تكوين ملف تعريف التحجيم التلقائي لنظام المجموعة لأحمال العمل الاندفاعية
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 ""
استرداد سجلات المقاييس التلقائية للكتلة وحالتها
يمكنك استرداد السجلات وتحديثات الحالة من مقياس المجموعة التلقائي للمساعدة في تشخيص أحداث التحجيم التلقائي وتصحيحها. تدير AKS مقياس المجموعة التلقائي نيابة عنك وتديره في مستوى التحكم المدار. يمكنك تمكين عقدة وحدة التحكم لمشاهدة السجلات والعمليات من مقياس المجموعة التلقائي.
قم بإعداد قاعدة لسجلات الموارد لدفع سجلات التحجيم التلقائي لنظام المجموعة إلى Log Analytics باستخدام الإرشادات هنا. تأكد من تحديد المربع عند
cluster-autoscaler
تحديد خيارات السجلات.حدد قسم Log على نظام المجموعة الخاص بك.
أدخل استعلام المثال التالي في Log Analytics:
AzureDiagnostics | 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
يقوم التحجيم التلقائي لنظام المجموعة أيضا بكتابة الحالة الصحية إلى مسمى
configmap
cluster-autoscaler-status
. يمكنك استرداد هذه السجلات باستخدام الأمر التاليkubectl
:kubectl get configmap -n kube-system cluster-autoscaler-status -o yaml
لمزيد من المعلومات، راجع الأسئلة المتداولة حول مشروع Kubernetes/autoscaler GitHub.
مقاييس التحجيم التلقائي لنظام المجموعة
يمكنك تمكين مقاييس مستوى التحكم (معاينة) لمشاهدة السجلات والعمليات من مقياس المجموعة التلقائي باستخدام خدمة Azure Monitor المدارة للوظيفة الإضافية Prometheus
الخطوات التالية
يوضح لك هذا المقال كيفية قياس عدد عقد AKS تلقائيا. يمكنك أيضًا استخدام مقياس تلقائي للقرن الأفقي لضبط عدد القرون التي تقوم بتشغيل التطبيق تلقائيًّا. للحصول على خطوات حول استخدام مقياس تلقائي للقرن الأفقي، راجع تطبيقات المقياس في AKS.
للمساعدة في تحسين استخدام موارد نظام المجموعة وتحرير وحدة المعالجة المركزية والذاكرة لوحدات الجراب الأخرى، راجع التحجيم التلقائي للجراب العمودي.
Azure Kubernetes Service