المختبر 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
أسئلة للتفكير
- ما الفرق بين فحص الحياة وفحص الجاهزية؟
- متى تستخدم فحص بدء التشغيل؟
- ماذا يحدث إذا فشل فحص الحياة؟
- لماذا تعتبر فحوصات الجاهزية مهمة للخدمات؟
الخطوات التالية
اختبار الوحدة 3: تحقق من معرفتك
الوحدة 4: الخدمات والشبكات
تم إنشاء المختبر في: ديسمبر 2024