Deployments
لماذا Deployment؟
Section titled “لماذا Deployment؟”Pod وحده ضعيف للإنتاج. Deployment يضيف إدارة حقيقية:
- تشغيل عدد معين من النسخ.
- إعادة إنشاء Pod لو توقف.
- تحديث التطبيق تدريجيا.
- الرجوع لإصدار سابق.
إنشاء Deployment
Section titled “إنشاء Deployment”أنشئ ملف deployment.yaml:
apiVersion: apps/v1kind: Deploymentmetadata: name: webspec: replicas: 3 selector: matchLabels: app: web template: metadata: labels: app: web spec: containers: - name: nginx image: nginx:1.27 ports: - containerPort: 80طبق الملف:
kubectl apply -f deployment.yamlkubectl get deploymentskubectl get pods -l app=webتغيير عدد النسخ
Section titled “تغيير عدد النسخ”kubectl scale deployment web --replicas=5kubectl get pods -l app=webتحديث Image
Section titled “تحديث Image”kubectl set image deployment/web nginx=nginx:1.28kubectl rollout status deployment/webالرجوع للإصدار السابق
Section titled “الرجوع للإصدار السابق”kubectl rollout undo deployment/webLab: Deployment بثلاث نسخ
الهدف: تشغيل Nginx بثلاث نسخ ثم زيادة العدد إلى خمس نسخ.
طبق الملف، ثم جرب:
kubectl delete pod -l app=webkubectl get pods -l app=webلاحظ أن Kubernetes ينشئ Pods جديدة تلقائيا لأن Deployment يريد عددا معينا من النسخ.