Pods et Deployments 22 min de lecture

Deployments et ReplicaSets

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.