التحجيم التلقائي للجراب العمودي في خدمة Azure Kubernetes (AKS)
توفر هذه المقالة نظرة عامة حول استخدام التحجيم التلقائي للجراب العمودي (VPA) في خدمة Azure Kubernetes (AKS)، والتي تستند إلى إصدار مصدر مفتوح Kubernetes.
عند التكوين، يقوم VPA تلقائيا بتعيين طلبات الموارد والحدود على الحاويات لكل حمل عمل بناء على الاستخدام السابق. يحرر VPA وحدة المعالجة المركزية والذاكرة لوحدات الجراب الأخرى ويساعد على ضمان الاستخدام الفعال لمجموعات AKS الخاصة بك. يوفر التحجيم التلقائي للجراب العمودي توصيات لاستخدام الموارد بمرور الوقت. لإدارة الزيادات المفاجئة في استخدام الموارد، استخدم التحجيم التلقائي للجراب الأفقي، الذي يقوم بتحجيم عدد النسخ المتماثلة للحجيرة حسب الحاجة.
المزايا
يوفر التحجيم التلقائي للجراب العمودي المزايا التالية:
- يحلل ويضبط موارد المعالج والذاكرة إلى الحجم الصحيح للتطبيقات الخاصة بك. VPA ليست مسؤولة فقط عن زيادة الحجم، ولكن أيضا عن تقليص الحجم استنادا إلى استخدام الموارد الخاصة بها بمرور الوقت.
- يتم إخلاء جراب مع تعيين وضع التحجيم إلى تلقائي أو إعادة إنشاء إذا كان بحاجة إلى تغيير طلبات الموارد الخاصة به.
- يمكنك تعيين قيود وحدة المعالجة المركزية والذاكرة للحاويات الفردية عن طريق تحديد نهج مورد.
- يضمن أن العقد لديها موارد صحيحة لجدولة الجراب.
- يوفر تسجيلا قابلا للتكوين لأي تعديلات تم إجراؤها على موارد المعالج أو الذاكرة التي تم إجراؤها.
- يحسن استخدام موارد نظام المجموعة ويحرر وحدة المعالجة المركزية والذاكرة لوحدات الجراب الأخرى.
تحديد الخدمة واعتباراتها
ضع في اعتبارك القيود والاعتبارات التالية عند استخدام التحجيم التلقائي للجراب العمودي:
- يدعم VPA بحد أقصى 1000 حاوية مقترنة بالكائنات
VerticalPodAutoscaler
لكل نظام مجموعة. - قد يوصي VPA بموارد أكثر من المتوفرة في نظام المجموعة، ما يمنع تعيين الجراب إلى عقدة وتشغيله بسبب عدم كفاية الموارد. يمكنك التغلب على هذا القيد عن طريق تعيين LimitRange إلى الحد الأقصى للموارد المتاحة لكل مساحة اسم، ما يضمن عدم طلب pods موارد أكثر من المحددة. يمكنك أيضا تعيين الحد الأقصى لتوصيات الموارد المسموح بها لكل جراب في كائن
VerticalPodAutoscaler
. لا يمكن ل VPA التغلب تماما على مشكلة مورد عقدة غير كافية. تم إصلاح نطاق الحد، ولكن يتم تغيير استخدام مورد العقدة ديناميكيا. - لا نوصي باستخدام VPA مع التحجيم التلقائي للجراب الأفقي (HPA)، والذي يتوسع استنادا إلى نفس مقاييس استخدام وحدة المعالجة المركزية والذاكرة.
- يخزن VPA Recommender ما يصل إلى ثمانية أيام فقط من البيانات التاريخية.
- لا يدعم VPA أحمال العمل المستندة إلى JVM بسبب الرؤية المحدودة لاستخدام الذاكرة الفعلية لحمل العمل.
- لا يدعم VPA تشغيل التنفيذ الخاص بك من VPA جنبا إلى جنب معها. وجود موصي إضافي أو مخصص مدعوم.
- حاويات AKS Windows غير مدعومة.
نظرة عامة على VPA
يتكون كائن VPA من ثلاثة مكونات:
- التوصية: يراقب "الموصي" استهلاك الموارد الحالي والسابق، بما في ذلك محفوظات القياس وأحداث نفاد الذاكرة (OOM) ومواصفات نشر VPA، ويستخدم المعلومات التي يجمعها لتوفير القيم الموصى بها لطلبات/حدود وحدة المعالجة المركزية للحاوية والذاكرة.
- المحدث: يراقب المحدث القرون المدارة للتأكد من تعيين طلبات الموارد الخاصة بهم بشكل صحيح. إذا لم يكن الأمر كذلك، فإنه يزيل هذه الحجيرات بحيث يمكن لوحدات التحكم الخاصة بهم إعادة إنشائها مع الطلبات المحدثة.
- وحدة تحكم قبول VPA: تعين وحدة تحكم قبول VPA طلبات الموارد الصحيحة على وحدات الجراب الجديدة إما التي تم إنشاؤها أو إعادة إنشائها بواسطة وحدة التحكم الخاصة بها استنادا إلى نشاط المحدث.
وحدة تحكم قبول VPA
وحدة التحكم في قبول VPA هو ثنائي يسجل نفسه على أنه إخطار على الويب للقبول المتغير. عند إنشاء جراب جديد، تحصل وحدة التحكم في قبول VPA على طلب من خادم واجهة برمجة التطبيقات وتقيم ما إذا كان هناك تكوين VPA مطابق أو يعثر على تكوين مطابق ويستخدم التوصية الحالية لتعيين طلبات الموارد في الجراب.
تعمل وظيفة مستقلة، overlay-vpa-cert-webhook-check
خارج وحدة تحكم قبول VPA. overlay-vpa-cert-webhook-check
تنشئ الوظيفة الشهادات وتجددها وتسجل وحدة تحكم قبول VPA ك MutatingWebhookConfiguration
.
أوضاع عملية كائن VPA
يتم إدراج مورد التحجيم التلقائي للجراب العمودي، وهو الأكثر شيوعا نشرا، لكل وحدة تحكم تريد أن يكون لها متطلبات موارد حوسبة تلقائيا.
هناك أربعة أوضاع يعمل فيها VPA:
Auto
: يقوم VPA بتعيين طلبات الموارد أثناء إنشاء الجراب وتحديث الحجيرات الموجودة باستخدام آلية التحديث المفضلة.Auto
، وهو ما يعادلRecreate
، هو الوضع الافتراضي. بمجرد توفر تحديثات طلبات الجراب بدون إعادة تشغيل أو في مكانها، يمكن استخدامها كآلية التحديث المفضلةAuto
من قبل الوضع. معAuto
الوضع ، يقوم VPA بإخلاء جراب إذا كان بحاجة إلى تغيير طلبات الموارد الخاصة به. قد يتسبب في إعادة تشغيل القرون كلها في وقت واحد، مما قد يتسبب في عدم تناسق التطبيق. يمكنك الحد من عمليات إعادة التشغيل والحفاظ على التناسق في هذه الحالة باستخدام PodDisruptionBudget.Recreate
: يعين VPA طلبات الموارد أثناء إنشاء الجراب ويحدث الحجيرات الموجودة عن طريق إخلائها عندما تختلف الموارد المطلوبة بشكل كبير عن التوصيات الجديدة (احترام PodDisruptionBudget، إذا تم تعريفه). يجب عليك استخدام هذا الوضع فقط إذا كنت بحاجة إلى التأكد من إعادة تشغيل pods كلما تغير طلب المورد. وإلا، نوصي باستخدامAuto
الوضع، الذي يستفيد من التحديثات الخالية من إعادة التشغيل بمجرد توفرها.Initial
: يعين VPA طلبات الموارد فقط أثناء إنشاء الجراب. لا يقوم بتحديث القرون الموجودة. هذا الوضع مفيد لاختبار وفهم سلوك VPA دون التأثير على وحدات الجراب قيد التشغيل.Off
: لا يغير VPA متطلبات الموارد تلقائيا للقرون. يتم حساب التوصيات ويمكن فحصها في كائن VPA.
نمط التوزيع لتطوير التطبيق
إذا لم تكن معتادا على VPA، نوصي بنمط النشر التالي أثناء تطوير التطبيق لتحديد خصائص استخدام الموارد الفريدة الخاصة به، واختبار VPA للتحقق من أنه يعمل بشكل صحيح، والاختبار جنبا إلى جنب مع مكونات Kubernetes الأخرى لتحسين استخدام الموارد للمجموعة:
- قم بتعيين
UpdateMode = "Off"
في مجموعة الإنتاج وتشغيل VPA في وضع التوصية حتى تتمكن من اختبار VPA واكتساب الإلمام به.UpdateMode = "Off"
يمكن أن تتجنب إدخال تكوين خاطئ يمكن أن يسبب انقطاعا. - إنشاء إمكانية المراقبة أولا عن طريق جمع بيانات تتبع الاستخدام الفعلي للموارد على مدى فترة زمنية معينة، ما يساعدك على فهم السلوك وأي علامات على المشكلات من موارد الحاوية والجراب المتأثرة بأحمال العمل التي تعمل عليها.
- تعرف على بيانات المراقبة لفهم خصائص الأداء. استنادا إلى هذه الرؤى، قم بتعيين الطلبات/الحدود المطلوبة وفقا لذلك ثم في التوزيع أو الترقية التالية.
- قم بتعيين
updateMode
القيمة إلىAuto
أوRecreate
أوInitial
استنادا إلى متطلباتك.
الخطوات التالية
لمعرفة كيفية إعداد التحجيم التلقائي للجراب العمودي على نظام مجموعة AKS، راجع استخدام التحجيم التلقائي للجراب العمودي في AKS.
Azure Kubernetes Service