الفصل 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