انتقل إلى المحتوى الرئيسي

الفصل 3.8 - فحوصات الصحة

أهداف التعلم​

في نهاية هذا الفصل، ستكون قادرًا على:

  • فهم الأنواع الثلاثة من الفحوصات
  • تكوين فحوصات الحياة
  • تكوين فحوصات الجاهزية
  • استخدام فحوصات بدء التشغيل
  • اختيار الاستراتيجية الصحيحة لفحص الصحة

أنواع الفحوصات​

يوفر Kubernetes ثلاثة أنواع من الفحوصات للتحقق من صحة الحاويات:


1. فحص الحياة​

يحدد ما إذا كان يجب إعادة تشغيل الحاوية.

مثال​

livenessProbe:
httpGet:
path: /health
port: 8080
initialDelaySeconds: 30
periodSeconds: 10
timeoutSeconds: 5
failureThreshold: 3

السلوك​

إذا فشل الفحص: يتم إعادة تشغيل الحاوية.


2. فحص الجاهزية​

يحدد ما إذا كانت الحاوية جاهزة لاستقبال الحركة.

مثال​

readinessProbe:
httpGet:
path: /ready
port: 8080
initialDelaySeconds: 5
periodSeconds: 5
timeoutSeconds: 3
successThreshold: 1
failureThreshold: 3

السلوك​

إذا فشل الفحص: يتم إزالة البود من نقاط النهاية للخدمة.


3. فحص بدء التشغيل​

للتطبيقات البطيئة في البدء.

مثال​

startupProbe:
httpGet:
path: /startup
port: 8080
failureThreshold: 30 # 30 محاولات
periodSeconds: 10 # كل 10 ثواني
# المجموع: حتى 5 دقائق

السلوك​

أثناء بدء التشغيل: يتم تعطيل الفحوصات الأخرى.


أنواع الفحوصات​

HTTP GET​

livenessProbe:
httpGet:
path: /health
port: 8080
httpHeaders:
- name: Custom-Header
value: Awesome

TCP Socket​

livenessProbe:
tcpSocket:
port: 8080

Command Exec​

livenessProbe:
exec:
command:
- cat
- /tmp/healthy

التكوين الكامل​

apiVersion: v1
kind: Pod
metadata:
name: healthy-pod
spec:
containers:
- name: app
image: my-app:1.0
ports:
- containerPort: 8080
livenessProbe:
httpGet:
path: /health
port: 8080
initialDelaySeconds: 30
periodSeconds: 10
failureThreshold: 3
readinessProbe:
httpGet:
path: /ready
port: 8080
initialDelaySeconds: 5
periodSeconds: 5
failureThreshold: 3
startupProbe:
httpGet:
path: /startup
port: 8080
failureThreshold: 30
periodSeconds: 10

الممارسات الجيدة​

متى تستخدم كل فحص​

  • الحياة: إذا كان التطبيق يمكن أن يتوقف
  • الجاهزية: إذا كان التطبيق يحتاج إلى وقت ليكون جاهزًا
  • بدء التشغيل: إذا كان التطبيق يبدأ ببطء (>30 ثانية)

المعلمات الموصى بها​

  • initialDelaySeconds: طويل بما يكفي للبدء
  • periodSeconds: 5-10 ثواني
  • timeoutSeconds: 1-3 ثواني
  • failureThreshold: 3 (افتراضي)

ملخص​

في هذا الفصل، تعلمت:

فحص الحياة: يعيد تشغيل الحاوية إذا تعطلت
فحص الجاهزية: يزيل البود من الخدمة إذا لم يكن جاهزًا
فحص بدء التشغيل: للتطبيقات البطيئة في البدء
الأنواع: HTTP GET، TCP Socket، Command Exec
التكوين: initialDelaySeconds، periodSeconds، failureThreshold


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

الآن بعد أن أتقنت فحوصات الصحة:

المختبر 3.4: تكوين فحوصات الصحة
اختبار الوحدة 3: تحقق من معرفتك


الفصل تم إنشاؤه في: ديسمبر 2024