حجوزات موارد العقدة في خدمة Azure Kubernetes (AKS)

في هذه المقالة، يمكنك التعرف على حجوزات موارد العقدة في خدمة Azure Kubernetes (AKS).

حجوزات الموارد

تستخدم AKS موارد العقدة لمساعدة العقد على العمل كجزء من نظام المجموعة. يمكن أن يتسبب هذا الاستخدام في حدوث تعارض بين إجمالي موارد العقدة والموارد القابلة للتخصيص في AKS.

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

حجوزات وحدة المعالجة المركزية

تعتمد وحدة المعالجة المركزية المحجوزة على نوع العقدة وتكوين نظام المجموعة، مما قد يؤدي إلى وحدة معالجة مركزية أقل تخصيصا بسبب تشغيل ميزات إضافية. يعرض الجدول التالي حجوزات وحدة المعالجة المركزية بالملليكور:

الذكرة الأساسية للمعالج على المضيف ذاكرة أساسية واحدة 2 نواة 4 ذاكرات أساسية 8 ذاكرات أساسية 16 نواة 32 نواة 64 نواة
وحدة المعالجة المركزية المحجوزة في Kube (ميليكور) 60 100 140 180 260 420 740

حجوزات الذاكرة

في AKS، تتكون الذاكرة المحجوزة من مجموع قيمتين:

AKS 1.29 والإحدث

  • kubelet يحتوي البرنامج الخفي على قاعدة الإخلاء memory.available < 100 Mi بشكل افتراضي. تضمن هذه القاعدة أن العقدة تحتوي على ما لا يقل عن 100 Mi قابلة للتخصيص في جميع الأوقات. عندما يكون المضيف أقل من عتبة الذاكرة المتوفرة kubelet ، يقوم بتشغيل إنهاء أحد القرون قيد التشغيل ويحرر الذاكرة على الجهاز المضيف.

  • يتم تعيين معدل حجوزات الذاكرة وفقا للقيمة الأقل: 20 ميغابايت * الحد الأقصى للوحدات المدعومة على العقدة + 50 ميغابايت أو 25٪ من إجمالي موارد ذاكرة النظام.

    أمثلة:

    • إذا كان الجهاز الظاهري (VM) يوفر 8 غيغابايت من الذاكرة وتدعم العقدة ما يصل إلى 30 حاوية، فإن AKS تحتفظ ب 20 ميغابايت * 30 كحد أقصى من وحدات الجراب + 50 ميغابايت = 650 ميغابايت ل kube المحجوزة. Allocatable space = 8 GB - 0.65 GB (kube-reserved) - 0.1 GB (eviction threshold) = 7.25 GB or 90.625% allocatable.
    • إذا كان الجهاز الظاهري يوفر 4 غيغابايت من الذاكرة وتدعم العقدة ما يصل إلى 70 حاوية، فإن AKS تحتفظ بنسبة 25٪ * 4 غيغابايت = 1000 ميغابايت ل kube المحجوزة، لأن هذا أقل من 20 ميغابايت * 70 كحد أقصى من الجرابات + 50 ميغابايت = 1450 ميغابايت.

    لمزيد من المعلومات، راجع تكوين الحد الأقصى للقرون لكل عقدة في نظام مجموعة AKS.

إصدارات AKS قبل 1.29

  • kubelet يحتوي البرنامج الخفي على قاعدة الإخلاء memory.available < 750 Mi بشكل افتراضي. تضمن هذه القاعدة أن العقدة تحتوي على ما لا يقل عن 750 Mi قابلة للتخصيص في جميع الأوقات. عندما يكون المضيف أقل من عتبة الذاكرة المتوفرة kubelet ، يقوم بتشغيل إنهاء إحدى الجرابات قيد التشغيل وتحرير الذاكرة على الجهاز المضيف.
  • معدل تنازلي من تحفظات الذاكرة للتطبيق الخفي kubelet لكي يعمل بشكل صحيح (kube-reserved).
    • %25 من أول 4 غيغابايت من الذاكرة
    • %20 من 4 غيغابايت التالية في الذاكرة (حتى 8 غيغابايت)
    • %10 من 8 غيغابايت التالية في الذاكرة (حتى 16 غيغابايت)
    • %6 من 112 غيغابايت التالية في الذاكرة (حتى 128 غيغابايت)
    • 2٪ من أي ذاكرة تزيد عن 128 غيغابايت

إشعار

تحتفظ AKS بسعة 2 غيغابايت إضافية لعمليات النظام في عقد Windows التي لا تشكل جزءا من الذاكرة المحسوبة.

تم تصميم قواعد تخصيص الذاكرة وCPU من أجل:

  • الحفاظ على حالة عُقد الوكيل، بما في ذلك بعض وحدات الجراب لنظام استضافة حيوي لحالة نظام المجموعة.
  • يتسبب في أن تبلغ العقدة عن ذاكرة وCPU أقل قابلية للتخصيص مما كانت ستبلغ عنه إذا لم تكن جزءا من مجموعة Kubernetes.

على سبيل المثال، إذا كانت العقدة توفر 7 غيغابايت، فإنها تبلغ عن 34٪ من الذاكرة غير قابلة للتخصيص بما في ذلك حد الإخلاء الثابت 750 Mi.

0.75 + (0.25*4) + (0.20*3) = 0.75 GB + 1 GB + 0.6 GB = 2.35 GB / 7 GB = 33.57% reserved

بالإضافة إلى الحجوزات لـKubernetes ذاتها، يحتفظ نظام تشغيل العُقدة الأساسية أيضًا كمية من موارد المعالج والذاكرة للحفاظ على وظائف نظام التشغيل.

للحصول على أفضل الممارسات المرتبطة بها، راجع أفضل الممارسات لمزايا المجدول الأساسية في AKS.

الخطوات التالية