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

المختبر 3.4 - تكوين فحوصات الصحة

الأهداف​

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

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

التمرين 1: فحص الحياة​

الخطوة 1: إنشاء بود مع فحص الحياة​

أنشئ pod-liveness.yaml:

apiVersion: v1
kind: Pod
metadata:
name: liveness-pod
spec:
containers:
- name: nginx
image: nginx:1.20
livenessProbe:
httpGet:
path: /
port: 80
initialDelaySeconds: 10
periodSeconds: 5
failureThreshold: 3

الخطوة 2: التطبيق والمراقبة​

kubectl apply -f pod-liveness.yaml

# مراقبة الأحداث
kubectl describe pod liveness-pod

التمرين 2: فحص الجاهزية​

الخطوة 1: إنشاء بود مع فحص الجاهزية​

أنشئ pod-readiness.yaml:

apiVersion: v1
kind: Pod
metadata:
name: readiness-pod
labels:
app: web
spec:
containers:
- name: nginx
image: nginx:1.20
readinessProbe:
httpGet:
path: /
port: 80
initialDelaySeconds: 5
periodSeconds: 5

الخطوة 2: إنشاء خدمة​

أنشئ service.yaml:

apiVersion: v1
kind: Service
metadata:
name: web-service
spec:
selector:
app: web
ports:
- port: 80

الخطوة 3: المراقبة​

# عرض النقاط النهائية
kubectl get endpoints web-service

# يظهر البود في النقاط النهائية فقط عندما ينجح فحص الجاهزية

التمرين 3: فحص بدء التشغيل​

الخطوة 1: إنشاء بود مع فحص بدء التشغيل​

أنشئ pod-startup.yaml:

apiVersion: v1
kind: Pod
metadata:
name: startup-pod
spec:
containers:
- name: slow-app
image: busybox
command: ['sh', '-c', 'sleep 30 && echo "Ready" && sleep 3600']
startupProbe:
exec:
command: ['sh', '-c', 'echo "started"']
failureThreshold: 30
periodSeconds: 2
livenessProbe:
exec:
command: ['sh', '-c', 'echo "alive"']
periodSeconds: 10

الخطوة 2: المراقبة​

kubectl apply -f pod-startup.yaml

# مراقبة بدء التشغيل
kubectl get pod startup-pod -w

# تنتظر فحوصات الحياة/الجاهزية حتى ينجح بدء التشغيل

التمرين 4: فحص يفشل​

الخطوة 1: إنشاء بود مع فحص يفشل​

أنشئ pod-failing.yaml:

apiVersion: v1
kind: Pod
metadata:
name: failing-pod
spec:
containers:
- name: nginx
image: nginx:1.20
livenessProbe:
httpGet:
path: /nonexistent
port: 80
initialDelaySeconds: 5
periodSeconds: 5
failureThreshold: 3

الخطوة 2: مراقبة إعادة التشغيل​

kubectl apply -f pod-failing.yaml

# مراقبة عمليات إعادة التشغيل
kubectl get pod failing-pod -w

# عرض الأحداث
kubectl describe pod failing-pod

التنظيف​

kubectl delete pod liveness-pod readiness-pod startup-pod failing-pod
kubectl delete service web-service

أسئلة للتفكير​

  1. ما الفرق بين فحص الحياة وفحص الجاهزية؟
  2. متى تستخدم فحص بدء التشغيل؟
  3. ماذا يحدث إذا فشل فحص الحياة؟
  4. لماذا تعتبر فحوصات الجاهزية مهمة للخدمات؟

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

اختبار الوحدة 3: تحقق من معرفتك
الوحدة 4: الخدمات والشبكات


تم إنشاء المختبر في: ديسمبر 2024