0Pricing
DevOps Bootcamp · درس

أولوية Pods والاستباق

تعلّموا كيف ترتّب PriorityClasses الـPods، وكيف يمكن للمجدول استباق Pods ذات الأولوية الأقل لإفساح المجال لأحمال العمل الحرجة

أولوية Pods والاستباق درس مجاني في DevOps Bootcamp على CoddyKit. هذا هو الدرس 4 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في DevOps Bootcamp، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة DevOps Bootcamp 4 دروس في المجموع.

ليست كل وحدات Pod متساوية

عندما يمتلئ العنقود، تكون بعض أحمال العمل أهم من غيرها. تتيح لك أولوية Pod إخبار Kubernetes بالـ Pods التي ينبغي أن تفوز بالمنافسة على الموارد.

ما هي PriorityClass

‏PriorityClass هو كائن على مستوى العنقود يربط اسمًا بقيمة عددية صحيحة. تعني الأرقام الأكبر أولوية أعلى.

apiVersion: scheduling.k8s.io/v1
kind: PriorityClass
metadata:
  name: high-priority
value: 1000000
globalDefault: false
description: 'For critical production workloads'

تعيين أولوية لـ Pod

ينضم Pod إلى فئة باستخدام priorityClassName. ويقرأ المجدول القيمة العددية من الفئة المشار إليها.

apiVersion: v1
kind: Pod
metadata:
  name: critical-app
spec:
  priorityClassName: high-priority
  containers:
  - name: app
    image: myapp:1.0

كيف تؤثر الأولوية في الجدولة

عندما تكون عدة Pods معلقة، يحاول المجدول وضع Pods ذات الأولوية الأعلى أولًا. وتؤثر الأولوية في ترتيب جدولة Pods.

ما هو الإخلاء الاستباقي

إذا تعذرت جدولة Pod ذي أولوية عالية لأن العنقود ممتلئ، فقد ينفذ المجدول إخلاءً استباقيًا (طردًا) لـ Pods ذات الأولوية الأقل لتوفير مساحة.

تعود Pods التي أُخليت إلى حالة Pending، وقد تُجدول في مكان آخر.

الإخلاء الاستباقي عمليًا

تخيل أن عقدة ممتلئة بـ Pods ذات أولوية 100، ووصل Pod ذو أولوية 1000000. يستطيع المجدول إزالة عدد كافٍ من Pods منخفضة الأولوية لإفساح المجال للـ Pod الحرج.

kubectl get events --field-selector reason=Preempted
# Pod default/batch-job was preempted by critical-app

تعطيل الإخلاء الاستباقي

يمكن لـ PriorityClass الامتناع عن إخلاء الآخرين باستخدام preemptionPolicy: Never. وتستمر جدولة هذه Pods وفق ترتيب الأولوية، لكنها لن تطرد أي Pod.

apiVersion: scheduling.k8s.io/v1
kind: PriorityClass
metadata:
  name: high-no-preempt
value: 1000000
preemptionPolicy: Never

الإعداد الافتراضي العام

يؤدي تعيين globalDefault: true في PriorityClass إلى تطبيق قيمتها على أي Pod لا يحدد فئة. ويمكن أن تكون فئة واحدة فقط هي الإعداد الافتراضي العام.

فئات النظام المضمنة

تأتي Kubernetes مع فئات محجوزة مثل system-cluster-critical وsystem-node-critical للمكونات الأساسية. لا تعيدوا استخدام هذه الفئات لتطبيقاتكم.

kubectl get priorityclass
# system-node-critical     2000001000
# system-cluster-critical  2000000000

أفضل الممارسات

  • حددوا عددًا صغيرًا من المستويات الواضحة (مثل: حرج، عادي، دفعي)
  • احجزوا الإخلاء الاستباقي لأحمال العمل المهمة فعلًا
  • اجمعوا بينه وبين طلبات الموارد لتكون قرارات الجدولة دقيقة
  • تجنبوا جعل كل شيء عالي الأولوية، لأن ذلك يلغي الغرض منه

الأولوية مقابل QoS

تتحكم الأولوية في الجدولة والإخلاء الاستباقي. أما فئات جودة الخدمة (المستمدة من الطلبات والحدود) فتتحكم في الإخلاء عند تعرض العقدة لضغط. وهما آليتان مرتبطتان لكن منفصلتان.

اختبار سريع

اختبروا مدى فهمكم للإخلاء الاستباقي.

مراجعة

تعلمتم أن PriorityClass يرتب Pods حسب قيمة عددية صحيحة، مما يؤثر في ترتيب الجدولة. ويتيح الإخلاء الاستباقي للـ Pods الحرجة إخلاء Pods الأقل أولوية عندما يكون العنقود ممتلئًا. استخدموا مستويات قليلة وواضحة، واجمعوا بين الأولوية وطلبات الموارد الدقيقة.

الأسئلة الشائعة

هل درس «أولوية Pods والاستباق» مجاني؟

نعم — نص درس «أولوية Pods والاستباق» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة DevOps Bootcamp، انتقل إلى CoddyKit PRO. تتضمن دورة DevOps Bootcamp 4 دروس في المجموع.

ماذا ستتعلم في «أولوية Pods والاستباق»؟

تعلّموا كيف ترتّب PriorityClasses الـPods، وكيف يمكن للمجدول استباق Pods ذات الأولوية الأقل لإفساح المجال لأحمال العمل الحرجة تتمرن على DevOps Bootcamp مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ DevOps Bootcamp؟

لا تُشترط خبرة سابقة. DevOps Bootcamp على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 4 من أصل 4.

كم من الوقت يستغرق درس «أولوية Pods والاستباق»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس DevOps Bootcamp هذا؟

نعم. كل درس في DevOps Bootcamp يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. طلبات الموارد وحدودها
  2. محدّدات العقدة والتقارب
  3. Taints وTolerations
  4. أولوية Pods والاستباق
← العودة إلى DevOps Bootcamp