Kubernetes Liveness وReadiness وStartup Probes: لماذا ليست كلها Health Check واحدة؟

Kubernetes Liveness و Readiness و Startup Probes: لماذا ليست كلها Health Check واحدة؟

كل probe تجيب عن سؤال مختلف: هل الحاوية حية؟ هل هي جاهزة للترافيك؟ وهل تحتاج وقتًا طويلًا للبدء؟

مقارنة مباشرة

كل probe تجيب عن سؤال مختلف: هل الحاوية حية؟ هل هي جاهزة للترافيك؟ وهل تحتاج وقتًا طويلًا للبدء؟

3خيارات
4معايير

Liveness و Readiness و Startup: ما الفرق؟

المعيارReadinessLivenessStartup
السؤال الأساسيهل يستطيع ال ـPod استقبال traffic الآن؟هل الحاوية سليمة أم تحتاج restart؟هل انتهى التطبيق من الإقلاع؟
عند الفشليُزال ال ـPod من Service endpoints بدون restartقد يعيد Kubernetes تشغيل الحاويةيظل التطبيق في مرحلة الإقلاع ولا تبدأ probes الأخرى بعد
متى تعمل؟أثناء التشغيلأثناء التشغيل بعد نجاح startup probe إن وُجدتأثناء الإقلاع فقط
أفضل استخداممنع traffic قبل الجاهزية أو أثناء عطل مؤقتاكتشاف الحالة التي لا تتعافى بدون restartحماية التطبيقات بطيئة الإقلاع من فحوص مبكرة

جاهز لا تعني حيًا فقط

قد يكون التطبيق يعمل لكنه ينتظر قاعدة البيانات أو تحميل cache ولا ينبغي أن يستقبل طلبات. Readiness تعبر عن القدرة على خدمة الترافيك الآن.

كيف تسبب probes مشكلة؟

فحص ثقيل أو timeout قصير قد يصنع restarts أثناء ضغط طبيعي. يجب أن يكون endpoint بسيطًا ويعكس الحالة التي يهم ال ـorchestrator اتخاذ قرار بشأنها.

ثلاثة أسئلة مختلفة لثلاثة أنواع من الفحص

Liveness probe تسأل إن كانت الحاوية بحاجة إلى إعادة تشغيل عند توقفها عن العمل بصورة لا تتعافى ذاتيًا. Readiness probe تحدد إن كانت جاهزة لاستقبال طلبات عبر Service في اللحظة الحالية. Startup probe تمنح التطبيق البطيء وقتًا مناسبًا للإقلاع قبل تفعيل فحوص أخرى. الخلط بينها يؤدي إلى إزالة الخدمة من الترافيك بلا داع أو إلى إعادة تشغيلات متكررة قد تضخم عطلًا مؤقتًا في قاعدة البيانات.

سيناريو قاعدة بيانات بطيئة

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

كيف تحدد توقيت الفحص دون أرقام منسوخة؟

اضبط periodSeconds و timeoutSeconds و failureThreshold بالاعتماد على زمن الاستجابة المعتاد وأسوأ ظروف الإقلاع والحمل. لا تستخدم مهلة قصيرة جدًا لفحص يشمل طلبًا شبكيًا تحت ضغط، ولا تجعل المهلة طويلة بحيث يبقى Pod معطوبًا يقبل الترافيك. عند وجود startup probe يجب أن تغطي نافذتها إقلاعًا بطيئًا مشروعًا، ثم يبدأ سلوك الفحوص الأخرى على النحو الموثق. قِس حالات الفشل الحقيقية بدل اختيار أرقام عشوائية.

اختبار endpoint صحي خفيف

ينبغي أن يرد endpoint الخاص بالفحص بسرعة ويعكس السؤال المقصود دون تنفيذ استعلامات مكلفة أو تغيير البيانات. قد تعتمد readiness على توفر مجموعة محددة من الاعتماديات الأساسية وفق تصميم التطبيق، بينما تكتفي liveness بتحديد أن الحلقة الرئيسية ما زالت تعمل. إذا كان البرنامج يدعم أمر exec محليًا أو فحص TCP وفق حالته، فاختر الطريقة الأنسب مع الانتباه إلى أن فتح المنفذ لا يثبت سلامة الوظائف التطبيقية.

مراقبة أثر الفحوص في الإنتاج

سجّل عدد مرات فشل probes وإعادة تشغيل الحاويات والوقت الذي تقضيه النسخ خارج Service endpoints، واربطها بمعدلات الخطأ الفعلية للمستخدمين. راقب استخدام CPU والذاكرة وتغير السلوك بعد النشر؛ فال ـProbe نفسها قد تستهلك موارد وتصبح جزءًا من المشكلة. إذا ارتفعت restarts عقب تغيير الإعداد، راجع سجل الأحداث وتوقيت الخطأ بدل افتراض أن المشكلة في التطبيق وحده.

خطوات مراجعة قبل اعتماد الإعداد

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

هل تريد الاحتفاظ بالمقال أو إعادة استخدامه؟
مجتمع إيجي تاجعن المجتمع

شارك في تقييم ونقاش المقال

رأيك يضيف قيمة للمقال ويساعدنا على تحسين المحتوى والنقاش حوله.

تفاعل مع المقالاختر التفاعل المناسب، ويمكنك تغيير رأيك لاحقًا.
قيّم جودة المقاللا توجد تقييمات بعد — كن أول من يقيّم.

نقاش القراء

النقاش

جارٍ تحميل التعليقات…

بعد هذه المادة

تابع القراءة

كل مواد #السحابة والاستضافة
مرتبطة بنفس الوسوم04
  1. 02
  2. 03
  3. 04
اختيار القراء

الأكثر قراءة

الترتيب الكامل
  1. 01
  2. 02
  3. 03
  4. 04
  5. 05
يتجدد مع النشر

أحدث المواد

  1. 01
  2. 02
  3. 03
  4. 04
  5. 05
  6. 06