تخطَّ إلى المحتوى

Deployments

Pod وحده ضعيف للإنتاج. Deployment يضيف إدارة حقيقية:

  • تشغيل عدد معين من النسخ.
  • إعادة إنشاء Pod لو توقف.
  • تحديث التطبيق تدريجيا.
  • الرجوع لإصدار سابق.

أنشئ ملف deployment.yaml:

apiVersion: apps/v1
kind: Deployment
metadata:
name: web
spec:
replicas: 3
selector:
matchLabels:
app: web
template:
metadata:
labels:
app: web
spec:
containers:
- name: nginx
image: nginx:1.27
ports:
- containerPort: 80

طبق الملف:

Terminal window
kubectl apply -f deployment.yaml
kubectl get deployments
kubectl get pods -l app=web
Terminal window
kubectl scale deployment web --replicas=5
kubectl get pods -l app=web
Terminal window
kubectl set image deployment/web nginx=nginx:1.28
kubectl rollout status deployment/web
Terminal window
kubectl rollout undo deployment/web

Lab: Deployment بثلاث نسخ

المستوى: مبتدئ الوقت: 20 دقيقة الأدوات: kubectl

الهدف: تشغيل Nginx بثلاث نسخ ثم زيادة العدد إلى خمس نسخ.

طبق الملف، ثم جرب:

Terminal window
kubectl delete pod -l app=web
kubectl get pods -l app=web

لاحظ أن Kubernetes ينشئ Pods جديدة تلقائيا لأن Deployment يريد عددا معينا من النسخ.