Pourquoi des Deployments ?
Les Deployments gerent automatiquement :
- Le nombre de replicas (scaling)
- Les mises a jour (rolling updates)
- Les rollbacks en cas d'erreur
- Le self-healing (redemarrage automatique)
Creer un Deployment
kubectl create deployment nginx --image=nginx --replicas=3
kubectl get deployments
kubectl get replicasets
kubectl get pods
Deployment YAML
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-deployment
spec:
replicas: 3
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:1.21
ports:
- containerPort: 80
Scaler un Deployment
kubectl scale deployment nginx --replicas=5
kubectl get pods --watch
Mettre a jour un Deployment
kubectl set image deployment/nginx nginx=nginx:1.22
kubectl rollout status deployment/nginx
kubectl rollout history deployment/nginx
Rollback
kubectl rollout undo deployment/nginx
kubectl rollout undo deployment/nginx --to-revision=2
ReplicaSet : Le Deployment cree automatiquement un ReplicaSet qui gere les replicas. Ne modifiez jamais un ReplicaSet directement.