خيارات التحجيم للتطبيقات في Azure Kubernetes Service (AKS)
عند تشغيل التطبيقات في Azure Kubernetes Service (AKS)، قد تحتاج إلى زيادة أو تقليل كمية موارد الحساب. أثناء تغيير عدد مثيلات التطبيق لديك، قد تحتاج إلى تغيير عدد عقد Kubernetes الأساسية. قد تحتاج أيضا إلى توفير عدد كبير من مثيلات التطبيق الأخرى.
تقدم هذه المقالة مفاهيم تحجيم تطبيق AKS الأساسية، بما في ذلك التحجيم اليدوي للقرون أو العقد، واستخدام التحجيم التلقائي للجراب الأفقي، واستخدام مقياس المجموعة التلقائي، والتكامل مع مثيلات حاوية Azure (ACI).
توسيع الحجيرات أو العقد يدويًا
يمكنك تغيير حجم النسخ المتماثلة أو القرون والعقد يدويا لاختبار كيفية استجابة تطبيقك للتغيير في الموارد والحالة المتوفرة. يتيح لك تحجيم الموارد يدويا تحديد كمية معينة من الموارد لاستخدامها للحفاظ على تكلفة ثابتة، مثل عدد العقد. لتغيير الحجم تلقائيًا، قم بتعريف عدد النسخ المتماثلة أو العقد. ثم تقوم واجهة برمجة تطبيقات Kubernetes بجدولة إنشاء المزيد من الجرابات أو استنزاف العقد استنادا إلى تلك النسخة المتماثلة أو عدد العقد.
عند تقليص حجم العقد، تستدعي Kubernetes API Azure Compute API ذات الصلة المرتبطة بنوع الحوسبة المستخدم من قبل نظام المجموعة الخاص بك. على سبيل المثال، بالنسبة للمجموعات المبنية على مجموعات مقياس الجهاز الظاهري، تحدد واجهة برمجة تطبيقات مجموعات مقياس الجهاز الظاهري العقد التي يجب إزالتها. لمعرفة المزيد حول كيفية تحديد العقد لإزالتها على نطاق واسع، راجع الأسئلة المتداولة حول مجموعات مقياس الجهاز الظاهري.
للبدء في تحجيم العقد يدويا، راجع توسيع العقد يدويا في نظام مجموعة AKS. لتغيير عدد القرون يدويا، راجع الأمر kubectl scale.
التحجيم التلقائي للقرن الأفقي
يستخدم Kubernetes التحجيم التلقائي للجراب الأفقي (HPA) لمراقبة الطلب على الموارد وتوسيع نطاق عدد القرون تلقائيا. بشكل افتراضي، يتحقق HPA من واجهة برمجة تطبيقات المقاييس كل 15 ثانية لأي تغييرات مطلوبة في عدد النسخ المتماثلة، وتسترد واجهة برمجة تطبيقات المقاييس البيانات من Kubelet كل 60 ثانية. لذلك، يتم تحديث HPA كل 60 ثانية. عند طلب تغييرا ، يتم زيادة أو تقليل عدد النسخ المتماثلة حسب الحاجة. يعمل HPA مع مجموعات AKS التي نشرت Metrics Server للإصدار 1.8 من Kubernetes والإصدارات الأحدث.
عند تكوين HPA لنشر معين، يمكنك تحديد الحد الأدنى والحد الأقصى لعدد النسخ المتماثلة التي يمكن تشغيلها. يمكنك أيضا تحديد Metric لمراقبة أي قرارات قياسية وإسنادها، مثل استخدام وحدة المعالجة المركزية.
للبدء باستخدام مقياس تحجيم تلقائي لحجيرة أفقية في AKS، راجع التحجيم التلقائي للحجيرات في AKS.
تهدئة أحداث التحجيم.
كما يتم تحديث HPA بشكل فعال كل 60 ثانية، قد لا تكتمل أحداث المقياس السابقة بنجاح قبل إجراء فحص آخر. قد يتسبب هذا السلوك في تغيير HPA لعدد النسخ المتماثلة قبل أن يتلقى حدث المقياس السابق حمل عمل التطبيق وطلبات الموارد للضبط وفقا لذلك.
لتقليل أحداث السباق، يتم تعيين قيمة التأخير. تحدد هذه القيمة المدة التي يجب أن ينتظرها HPA بعد حدث مقياس قبل تشغيل حدث مقياس آخر. يتيح هذا السلوك تفعيل عدد النسخ المتماثلة الجديدة وMetrics API لعكس عبئ العمل الموزع. لا يوجد تأخير لأحداث توسيع النطاق اعتبارا من Kubernetes 1.12، ومع ذلك، فإن التأخير الافتراضي لأحداث تقليص الحجم هو 5 دقائق.
أداة التحجيم التلقائي لنظام المجموعة
للاستجابة لطلبات الجراب المتغيرة، يقوم التحجيم التلقائي لنظام مجموعة Kubernetes بضبط عدد العقد استنادا إلى موارد الحوسبة المطلوبة في تجمع العقدة. بشكل افتراضي، يتحقق مقياس المجموعة التلقائي لخادم Metrics API كل 10 ثوانٍ بحثًا عن أي تغييرات مطلوبة في عدد العقد. إذا حدد التحجيم التلقائي لنظام المجموعة أن التغيير مطلوب، فتتم زيادة عدد العُقد في نظام مجموعة خدمة Azure Kubernetes أو تقليلها حسب الحاجة. يعمل مقياس المجموعة التلقائي مع مجموعات AKS التي تدعم Kubernetes RBAC، والتي تشغل Kubernetes 1.10.x أو أعلى.
عادة ما يتم استخدام مقياس المجموعة التلقائي جنبا إلى جنب مع التحجيم التلقائي للجراب الأفقي. عند دمجها، يزيد التحجيم التلقائي للجراب الأفقي أو يقلل عدد القرون بناء على طلب التطبيق، ويضبط التحجيم التلقائي لنظام المجموعة عدد العقد لتشغيل المزيد من الحجيرات.
لبدء استخدام مقياس المجموعة التلقائي في AKS، راجع مقياس المجموعة التلقائي على AKS.
توسيع نطاق الأحداث
إذا كانت العقدة لا تحتوي على موارد حوسبة كافية لتشغيل حجيرة مطلوبة، فلا يمكن لهذه الحجيرة أن تتقدم خلال عملية الجدولة. لا يمكن بدء تشغيل الجراب ما لم تتوفر المزيد من موارد الحوسبة داخل تجمع العقدة.
عندما يلاحظ مقياس المجموعة التلقائي القرون التي لا يمكن جدولتها بسبب قيود موارد تجمع العقدة، يتم زيادة عدد العقد داخل تجمع العقدة لتوفير موارد حساب إضافية. عند نشر العقد بنجاح وإتاحتها للاستخدام داخل تجمع العقدة، تتم جدولة pods لتشغيلها.
إذا كان التطبيق الخاص بك يحتاج إلى التوسع بسرعة، فقد تظل بعض الحجيرات في حالة انتظار جدولتها حتى يمكن أن يقبل المزيد من العقد التي تم نشرها بواسطة التحجيم التلقائي لنظام المجموعة الحجيرات المجدولة. بالنسبة للتطبيقات التي لها متطلبات اندفاع عالية، يمكنك التوسع مع العقد الظاهرية ومثيلات حاوية Azure.
تضييق نطاق الأحداث
يراقب مقياس المجموعة التلقائي أيضًا حالة جدولة الحجيرة للعقد التي لم تتلق مؤخرًا طلبات جدولة جديدة. يشير هذا السيناريو إلى أن تجمع العقدة يحتوي على موارد حساب أكثر مما هو مطلوب، ويمكن تقليل عدد العقد. بشكل افتراضي، تتم جدولة العقد التي تمرر عتبة لم تعد مطلوبة لمدة 10 دقائق للحذف. عند حدوث هذا الموقف، يتم جدولة الحجيرات للعمل على العقد الأخرى داخل تجمع العقدة، و التحجيم التلقائي لنظام المجموعة يقلل عدد العقد.
قد تواجه بعض التطبيقات بعض العرقلات بينما يتم جدولة الحجيرات على عقد مختلفة عندما يقلل التحجيم التلقائي لنظام المجموعة عدد العقد. لتقليل العرقلات، تجنب التطبيقات التي تستخدم مثيل حجيرة واحد.
التحجيم التلقائي المستند إلى أحداث Kubernetes (KEDA)
يعد التحجيم التلقائي المستند إلى أحداث Kubernetes (KEDA) مكونا مصدر مفتوح للتحجيم التلقائي المستند إلى الحدث لأحمال العمل. فهو يتوسع في أحمال العمل ديناميكيا استنادا إلى عدد الأحداث المستلمة. توسع KEDA Kubernetes مع تعريف مورد مخصص (CRD)، يشار إليه باسم ScaledObject، لوصف كيفية تحجيم التطبيقات استجابة لحركة مرور معينة.
يعد تحجيم KEDA مفيدا في السيناريوهات التي تتلقى فيها أحمال العمل اندفاعات من حركة المرور أو تعالج كميات كبيرة من البيانات. يختلف عن التحجيم التلقائي للجراب الأفقي، حيث يعتمد KEDA على الحدث ويتدرج استنادا إلى عدد الأحداث، بينما يعتمد HPA على المقاييس استنادا إلى استخدام الموارد (على سبيل المثال، وحدة المعالجة المركزية والذاكرة).
لبدء استخدام الوظيفة الإضافية KEDA في AKS، راجع نظرة عامة على KEDA.
الاندفاع إلى مثيلات حاوية Azure (ACI)
لتوسيع نطاق نظام مجموعة AKS بسرعة، يمكنك الدمج مع مثيلات حاويات Azure (ACI). يحتوي Kubernetes على مكونات مدمجة لتغيير حجم النسخة المتماثلة وعدد العقد. ومع ذلك، إذا كان التطبيق الخاص بك يحتاج إلى التوسع بسرعة، فقد يقوم التحجيم التلقائي للحجيرة الأفقية بجدولة المزيد من وحدات الجراب مما يمكن توفيره بواسطة موارد الحوسبة الموجودة في تجمع العقدة. إذا تم تكوينه، فسيشغل هذا السيناريو أداة التحجيم التلقائي لنظام المجموعة لنشر المزيد من العقد في تجمع العقد، ولكن قد يستغرق الأمر بضع دقائق حتى يتم توفير هذه العقد بنجاح والسماح لمجدول Kubernetes بتشغيل القرون عليها.
يتيح لك ACI نشر مثيلات الحاوية بسرعة دون حمل إضافي للبنية الأساسية. عند الاتصال مع AKS، يصبح ال ACI ملحقا منطقيا آمنا نظام مجموعة AKS. يتم تثبيت مكون العقد الظاهرية، الذي يستند إلى Kubelet الظاهري، في نظام مجموعة AKS الذي يقدم ACI كعقدة Kubernetes ظاهرية. يمكن ل Kubernetes بعد ذلك جدولة الحجيرات التي تعمل كمثيلات ACI من خلال العقد الافتراضية، وليس كحجيرات على عقد VM مباشرة في نظام مجموعة AKS الخاص بك.
لا يتطلب التطبيق الخاص بك أي تعديلات لاستخدام العقد الظاهرية. يمكن توسيع نطاق عمليات النشر الخاصة بك عبر AKS و ACI دون أي تأخير حيث يقوم مقياس المجموعة التلقائي بتوزيع عقد جديدة في نظام مجموعة AKS الخاص بك.
يتم نشر العقد الافتراضية إلى شبكة فرعية أخرى في نفس الشبكة الافتراضية حيث نظام المجموعة AKS خاصتك. يؤمن تكوين الشبكة الظاهرية هذا نسبة استخدام الشبكة بين ACI وAKS. مثل نظام مجموعة AKS، مثيل ACI هو مورد حساب منطقي آمن معزول عن المستخدمين الآخرين.
الخطوات التالية
لبدء استخدام تطبيقات التحجيم، راجع الموارد التالية:
- توسيع الحجيرات أو العقد يدويًا
- استخدام مقياس تلقائي للحجيرة الأفقية
- استخدام مقياس المجموعة التلقائي
- استخدم الوظيفة الإضافية [Kubernetes Event-drived Autoscaling (KEDA)][keda-addon]
لمزيد من المعلومات حول مفاهيم Kubernetes وAKS الأساسية، راجع المقالات التالية:
Azure Kubernetes Service