خطوات الاستخدام
الخطوة 1: حساب متطلبات وحدة المعالجة المركزية (CPU) لكل عقدة. تحتاج أولاً إلى معرفة سعة وحدة المعالجة المركزية لكل عقدة تخطط لاستخدامها. افترض أن العقدة تحتوي على 4 نوى (cores) من وحدة المعالجة المركزية. قم بقسمة إجمالي متطلبات وحدة المعالجة المركزية (totalCpuReq) على هذه السعة. على سبيل المثال، إذا كان إجمالي الطلب 100 نواة، فستحتاج إلى 100/4 = 25 عقدة. لكن نظرًا لأن العقد لا يمكن أن تحتوي على أجزاء، استخدم الدالة ceil (تقريب لأعلى).
الخطوة 2: حساب متطلبات الذاكرة (Memory) لكل عقدة. على غرار حساب وحدة المعالجة المركزية، افترض سعة ذاكرة لكل عقدة، مثلاً 16 جيجابايت. اقسم إجمالي متطلبات الذاكرة (totalMemReq) على هذه السعة. مثلاً، إذا كان الإجمالي 200 جيجابايت، فستحتاج إلى 200/16 = 12.5 عقدة، أي 13 عقدة بعد التقريب لأعلى.
الخطوة 3: تحديد عدد العقد النهائي بناءً على المورد الأكثر تقييدًا. قارن بين عدد العقد المحسوب لوحدة المعالجة المركزية وعدد العقد المحسوب للذاكرة. عدد العقد النهائي هو القيمة الأكبر بينهما. في المثالين أعلاه، عدد العقد لوحدة المعالجة المركزية هو 25 وللذاكرة 13، لذا نحتاج إلى 25 عقدة. هذا يضمن تلبية كلا المتطلبين.
الخطوة 4: التحقق من حد أقصى عدد الحاويات (pods) لكل عقدة. يحتوي Kubernetes على حد أقصى لعدد الحاويات التي يمكن تشغيلها على عقدة واحدة، ويُعرف بـ maxPodsPerNode. إذا كان لديك عدد إجمالي من الحاويات (totalPods)، فتأكد من أن إجمالي سعة الحاويات (عدد العقد × maxPodsPerNode) لا يقل عن totalPods. إذا لم يكن لديك هذا العدد، يمكنك تجاهل هذه الخطوة، لكنها مهمة لتجنب القيود.
الخطوة 5: تطبيق عوامل إضافية مثل الحمل الزائد للنظام (overhead). في الواقع، تستهلك العقدة نفسها جزءًا من الموارد (مثل نظام التشغيل وkubelet). يوصى بزيادة عدد العقد بنسبة 10-20% لتغطية هذا الحمل الزائد ولتحسين التكرار. على سبيل المثال، إذا كان الحساب الأساسي يشير إلى 25 عقدة، فقد تحتاج إلى 28-30 عقدة.
أمثلة محلولة
تطبيقات عملية على تحديد حجم عقدة Kubernetes بخطوات الحل كاملة.
الحل
أولاً، احسب عدد العقد بناءً على وحدة المعالجة المركزية: 200 / 8 = 25 عقدة. بعد التقريب لأعلى، يظل 25. ثانياً، احسب عدد العقد بناءً على الذاكرة: 800 / 32 = 25 عقدة أيضاً. لذا 25 عقدة تكفي لكلا الموردين. ثالثاً، تحقق من حد الحاويات: إجمالي سعة الحاويات = 25 * 110 = 2750 حاوية، وهو أكبر بكثير من 500، لذا لا مشكلة. رابعاً، ضع في اعتبارك الحمل الزائد للنظام: أضف 15% للحصول على 25 * 1.15 = 28.75 عقدة، أي 29 عقدة. يمكنك أيضًا إضافة عقدة إضافية للتكرار. الإجابة النهائية: 29 عقدة.
الحل
حساب CPU: 100 / 4 = 25 عقدة. حساب RAM: 50 / 16 = 3.125 → 4 عقد. لذا نحتاج إلى 25 عقدة (القيمة الأكبر). التحقق من الحاويات: إذا كان لديك 200 حاوية، فإن 25 * 30 = 750 حاوية كافية. مع الحمل الزائد، أضف 10%: 27.5 → 28 عقدة. ملاحظة: في هذا السيناريو، معظم العقد ستكون غير مستغلة في الذاكرة، لذا يمكنك التفكير في استخدام عقد بسعات CPU أعلى لتقليل التكلفة.
أمثلة محسوبة
قيم مُدخَلة ونتيجة محسوبة فعليًا بواسطة تحديد حجم عقدة Kubernetes.
مرجع — قيد المعالج
- إجمالي طلب CPU (نواة)
- 64
- إجمالي طلب الذاكرة (جيجابايت)
- 96
- الحد الأقصى للبودات لكل عقدة
- 30
مرجع — قيد الذاكرة
- إجمالي طلب CPU (نواة)
- 8
- إجمالي طلب الذاكرة (جيجابايت)
- 100
- الحد الأقصى للبودات لكل عقدة
- 20
مرجع — تعادل القيدين
- إجمالي طلب CPU (نواة)
- 10
- إجمالي طلب الذاكرة (جيجابايت)
- 40
- الحد الأقصى للبودات لكل عقدة
- 110
مرجع — مثال الخمسمائة حاوية الموثّق
- إجمالي طلب CPU (نواة)
- 200
- إجمالي طلب الذاكرة (جيجابايت)
- 800
- الحد الأقصى للبودات لكل عقدة
- 110
قيم مُدخَلة قياسية
- إجمالي طلب CPU (نواة)
- 10,000
- إجمالي طلب الذاكرة (جيجابايت)
- 10,000
- الحد الأقصى للبودات لكل عقدة
- 50
قيم مُدخَلة مرتفعة
- إجمالي طلب CPU (نواة)
- 100,000
- إجمالي طلب الذاكرة (جيجابايت)
- 100,000
- الحد الأقصى للبودات لكل عقدة
- 85
قيم مُدخَلة منخفضة
- إجمالي طلب CPU (نواة)
- 500
- إجمالي طلب الذاكرة (جيجابايت)
- 500
- الحد الأقصى للبودات لكل عقدة
- 10
قيم مُدخَلة مرتفعة
- إجمالي طلب CPU (نواة)
- 50
- إجمالي طلب الذاكرة (جيجابايت)
- 64
- الحد الأقصى للبودات لكل عقدة
- 110