محتويات الدورة

DevOps / المتوسط: أنظمة تسليم مضبوطة / الدرس 12

حدود أحمال Kubernetes وصحتها

اقرأ نموذج الحالة المرغوبة وميز المتحكم وPod والحاوية والخدمة والفحص دون تشغيل عنقود.

وقت القراءة التقريبي: 4 دقيقةتاريخ مراجعة المحتوى
في هذه الصفحة

أهداف الدرس

  • ميز أدلة Deployment وPod والحاوية والخدمة.
  • خصص غرضا للبدء والجاهزية والحياة.
  • راجع الموارد والهوية وحدود المسؤولية.

فهم حدود الكائنات

تسوّي Kubernetes الكائنات المعلنة عبر المتحكمات ومكونات العقد. يدير Deployment مجموعة Pods عبر ReplicaSets، وتجمع Pod حاويات بموارد وسياق حياة مشتركين، وتختار Service نقاطا وتجريد شبكة. تختلف الكائنات وأدلة فشلها. لا تفهم المنصة معاملة العمل تلقائيا أو تحمي من كل اعتمادية. يستخدم الدرس مفاهيم مستقرة وapps/v1، وتراجع الميزات والقيم حسب إصدار الخادم والعميل وسياسات القبول والتوزيعة.

فصل المرغوب والمجدول والعامل والجاهز

قد يبقى البيان المقبول دون جدولة أو يفشل الجلب أو يبدأ ويتعطل أو يعمل دون جاهزية. تصف CrashLoopBackOff فشلا متكررا مع تأخير إعادة لا السبب الكامل. يربط الخط الزمني الأول الحالة بسبب الإنهاء والأحداث والسجلات الآمنة. تقود معلومات الخروج والإعداد والأذونات والموارد لإصلاحات مختلفة. مرحلة Pod ملخص خشن لا بديل لحالة الحاوية. ولا تثبت العملية العاملة نقطة جاهزة للخدمة.

text خط زمني اصطناعي للبدء
t0: manifest accepted
t1: Pod scheduled
t2: container started
t3: process exited with configuration error
t4: restart backoff displayed
conclusion: inspect the startup error before changing probes

يوضح التسلسل فشل بدء متكرر وليس ناتج عنقود. لا تحدد CrashLoopBackOff الإعداد الناقص أو تبرر الرجوع وحدها.

إسناد مهام مختلفة للفحوص

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

yaml مقطع فحوص حاوية Kubernetes
startupProbe:
  httpGet: {path: /startup, port: 8080}
  periodSeconds: 5
  failureThreshold: 24
readinessProbe:
  httpGet: {path: /ready, port: 8080}
  periodSeconds: 5
livenessProbe:
  httpGet: {path: /live, port: 8080}
  periodSeconds: 10

ينتمي المقطع لمواصفة الحاوية. سماح البدء التوضيحي نحو 120 ثانية مع أثر تنفيذ الفحص وتوقيته، وليس إعدادا عاما أو بيانا كاملا.

مراجعة التخزين والموارد والوصول

تؤثر الطلبات في الجدولة وتقيد الحدود الموارد وفق سلوكها والمنصة. يختلف تحقيق ضغط الذاكرة وخنق المعالج. تضيف مطالب التخزين والإعداد وحساب الخدمة وسياسة الشبكة وسياق الأمن حدودا للصورة. لا تنسخ بيانا مميزا لتجاوز خطأ إذن. تحقق من النطاق والملكية قبل القراءة فقد تحوي الأوصاف والسجلات معلومات حساسة. لا تطبع قيم Secret؛ فالمراجع والإصدارات وأسماء المفاتيح أأمن كبداية.

اختيار Kubernetes مع مسؤولية واضحة

يضيف المنسق متحكمات وسياسات وترقيات وشبكات وتخزينا وخبرة تشغيل. قد تناسب منصة أبسط حملا لا يحتاجها. عند الاختيار افصل مسؤولية العنقود عن إصدار التطبيق مع تصعيد واضح. جرّب الإنهاء والانقطاع والإصدارات المختلطة في عزلة مصرح بها. سجل ضمانات المنصة والتزامات التطبيق كمنع التكرار والاتساق. لا تنفذ الدورة kubectl أو اتصالا أو تطبيقا أو إعادة خدمة.

الأخطاء الشائعة وإصلاحها

يولد فشل الجاهزية إعادات غير لازمة

لماذا يحدث؟
اختلطت أهلية الحركة وإعادة التشغيل.
كيف تصلحه؟
افصل الجاهزية عن الحياة وقس البدء.
كيف تتجنب تكراره؟
اختبر تعطل الاعتماديات دون عواصف إعادة.

تُعد CrashLoopBackOff السبب

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

لا يعمل البيان إلا بامتياز واسع

لماذا يحدث؟
لم تفحص افتراضات الملفات والهوية والمنصة.
كيف تصلحه؟
صحح عقد الوصول الضيق بدلا من تعطيل الحدود.
كيف تتجنب تكراره؟
راجع سياق الأمن والصلاحيات اللازمة معا.

اختبر فهمك

1. قُبل Deployment ولا Pod جاهزة. ما سلسلة الأدلة؟

اعرض الحل المشروح

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

2. يسقط تعطل قاعدة مشتركة فحص الحياة في كل نسخة. ما تعديل السياسة؟

اعرض الحل المشروح

اجعل الحياة تعكس حالة تفيد فيها إعادة العملية، وضع قبول الاعتمادية في جاهزية محدودة حيث يلائم. جرّب العطل معزولا ولا تزد التكرار عمياء أو تعد كل انتظار موتا.

أهم ما تعلمته

  • تسوّي Kubernetes الكائنات المعلنة عبر المتحكمات ومكونات العقد.
  • يحمي فحص البدء بدءا بطيئا مشروعا قبل تفعيل الحياة والجاهزية وفق الإعداد.
  • يضيف المنسق متحكمات وسياسات وترقيات وشبكات وتخزينا وخبرة تشغيل.

المراجع الرسمية