المختبر 3.3 - عمليات النشر والتحديثات المتدرجة
الأهداف
في نهاية هذا المختبر، ستكون قادرًا على:
- إنشاء وإدارة عمليات النشر
- تنفيذ التحديثات المتدرجة
- إدارة التراجعات
- توسيع عمليات النشر
التمرين 1: إنشاء عملية نشر
الخطوة 1: إنشاء ملف YAML
قم بإنشاء deployment.yaml:
apiVersion: apps/v1
kind: Deployment
metadata:
name: web-deployment
labels:
app: web
spec:
replicas: 3
selector:
matchLabels:
app: web
template:
metadata:
labels:
app: web
spec:
containers:
- name: nginx
image: nginx:1.20
ports:
- containerPort: 80
الخطوة 2: التطبيق
kubectl apply -f deployment.yaml
الخطوة 3: التحقق
# عرض عملية النشر
kubectl get deployment
# عرض مجموعات النسخ المتماثلة التي تم إنشاؤها
kubectl get replicasets
# عرض البودات
kubectl get pods -l app=web
التمرين 2: التحديث المتدرج
الخطوة 1: تحديث الصورة
# التحديث إلى nginx:1.21
kubectl set image deployment/web-deployment nginx=nginx:1.21
# مراقبة العملية
kubectl rollout status deployment/web-deployment
الخطوة 2: مراقبة مجموعات النسخ المتماثلة
# عرض مجموعات النسخ المتماثلة
kubectl get replicasets -w
# في نافذة طرفية أخرى، عرض البودات
kubectl get pods -l app=web -w
ملاحظة: يتم إنشاء مجموعة نسخ متماثلة جديدة، ويتم استبدال البودات تدريجيًا.
التمرين 3: التراجع
الخطوة 1: عرض التاريخ
# تاريخ التحديثات
kubectl rollout history deployment/web-deployment
# تفاصيل مراجعة معينة
kubectl rollout history deployment/web-deployment --revision=2
الخطوة 2: تنفيذ التراجع
# التراجع إلى الإصدار السابق
kubectl rollout undo deployment/web-deployment
# التحقق
kubectl rollout status deployment/web-deployment
الخطوة 3: التراجع إلى مراجعة محددة
# التراجع إلى المراجعة 1
kubectl rollout undo deployment/web-deployment --to-revision=1
التمرين 4: التوسيع
الخطوة 1: التوسيع اليدوي
# زيادة إلى 5 نسخ
kubectl scale deployment web-deployment --replicas=5
# التحقق
kubectl get pods -l app=web
الخطوة 2: التوسيع عبر التحرير
# تحرير عملية النشر
kubectl edit deployment web-deployment
# تعديل replicas: 5 إلى replicas: 2
# حفظ والخروج
التمرين 5: الإيقاف والاستئناف
# إيقاف التحديث
kubectl rollout pause deployment/web-deployment
# إجراء التعديلات
kubectl set image deployment/web-deployment nginx=nginx:1.22
# التحقق (لا شيء يتغير)
kubectl get pods -l app=web
# استئناف التحديث
kubectl rollout resume deployment/web-deployment
# المراقبة
kubectl rollout status deployment/web-deployment
التنظيف
kubectl delete deployment web-deployment
أسئلة للتفكير
- ما الفرق بين عملية النشر ومجموعة النسخ المتماثلة؟
- كيف يعمل التحديث المتدرج؟
- لماذا يتم استخدام التراجع؟
- متى يتم استخدام الإيقاف/الاستئناف؟
الخطوات التالية
المختبر 3.4: تكوين فحوصات الصحة
الفصل 3.8: فحوصات الصحة
تم إنشاء المختبر في: ديسمبر 2024