Qu'est-ce qu'un ensemble de réplicas et un déploiement?
sobes.tech IA
Réponse de l'IA
ReplicaSet garantit un nombre spécifique de pods identiques fonctionnant dans le cluster. Il surveille l'état des pods et remplace automatiquement ceux qui ont échoué ou arrêté de fonctionner.
Le Deployment est fourni au-dessus de la ReplicaSet. Il gère les mises à jour et les retours en arrière des applications, en conservant un historique des versions du déploiement. Permet d'effectuer des mises à jour selon la stratégie de rolling update ou recreate.
# Exemple de manifeste Deployment
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-deployment
spec:
replicas: 3 # Définit le nombre souhaité de pods (via ReplicaSet)
selector:
matchLabels:
app: nginx
strategy:
type: RollingUpdate # Stratégie de mise à jour
rollingUpdate:
maxUnavailable: 1
maxSurge: 1
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:1.14.2 # Version de l'image à mettre à jour
ports:
- containerPort: 80
Dans cet exemple, le Deployment créera un ReplicaSet qui maintiendra 3 pods avec l'image nginx:1.14.2. Lorsqu'on modifie la version de l'image dans le manifeste du Deployment, il créera un nouveau ReplicaSet pour la nouvelle version et dirigera progressivement le trafic vers celui-ci, en supprimant les anciens pods selon la stratégie de RollingUpdate.
Tableau comparatif:
| Possibilité | ReplicaSet | Deployment |
|---|---|---|
| Garantie du nombre de pods | ✅ | ✅ |
| Mise à jour des applications | ❌ | ✅ |
| Rétrogradation des versions | ❌ | ✅ |
| Gestion de l'historique | ❌ | ✅ |