Comprendre les Deployments
Découvrez comment les Deployments automatisent la gestion des Pods et des ReplicaSets pour les applications sans état.
Comprendre les Deployments est une leçon Kubernetes Basics gratuite sur CoddyKit. Ceci est la leçon 1 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Kubernetes Basics, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Kubernetes Basics comprend 4 leçons au total.
Que sont les déploiements ?
Bienvenue ! Dans Kubernetes, gérer les applications signifie gérer leurs Pods. Cependant, gérer directement des Pods individuels ou même des ReplicaSets peut devenir complexe.
Un déploiement est un objet de niveau supérieur qui simplifie la gestion des applications sans état. Considérez-le comme le gestionnaire de votre application.
- Il définit l’état souhaité de votre application.
- Il veille à ce que cet état soit maintenu, même en cas d’échec de Pods.
- Il automatise les mises à jour et les restaurations vers une version précédente.
Pourquoi utiliser les déploiements ?
Les déploiements offrent des avantages importants pour exécuter des applications de manière fiable dans Kubernetes :
- Gestion automatisée : ils prennent en charge la création, la mise à l’échelle et la suppression des Pods.
- Auto-rétablissement : si un Pod s’arrête brutalement, le déploiement le remplace automatiquement afin de maintenir le nombre de réplicas souhaité.
- Mises à jour déclaratives : vous décrivez le nouvel état souhaité et le déploiement détermine comment l’atteindre, par exemple en déployant progressivement de nouvelles versions.
Il s’agit de la méthode recommandée pour gérer les applications sans état.
Rôle central d’un déploiement
Au cœur de son fonctionnement, un déploiement gère des ReplicaSets. Le rôle d’un ReplicaSet est de garantir qu’un nombre défini de réplicas de Pods s’exécute en permanence.
Ainsi, un déploiement utilise des ReplicaSets pour atteindre son objectif : garantir que votre application dispose du nombre correct de Pods sains en cours d’exécution, conformément à votre définition.
Cette abstraction simplifie considérablement la définition et la maintenance du cycle de vie de votre application.
Anatomie d’un YAML de déploiement
Comme la plupart des objets Kubernetes, les déploiements sont définis en YAML. Voici les principales sections que vous trouverez généralement :
apiVersionetkind: identifient le type d’objet (Deployment).metadata: nom, étiquettes, etc. du déploiement lui-même.spec: la définition principale, qui comprend :replicas: le nombre souhaité de Pods.selector: la manière dont le déploiement trouve les Pods qu’il gère.template: le modèle des Pods à créer.
Le modèle de Pod
Le champ template dans le spec d’un déploiement est extrêmement important. Il s’agit essentiellement d’une définition complète de Pod.
Tous les Pods créés par ce déploiement utiliseront ce modèle. Vous y définissez notamment :
- Les images de conteneurs à utiliser.
- Les ports à exposer.
- Les variables d’environnement.
- Les demandes et limites de ressources.
- Et bien plus encore !
Les modifications apportées à ce modèle déclenchent des mises à jour de votre application.
Créer un déploiement simple
Définissons un déploiement pour un serveur web Nginx simple. Nous voulons 3 réplicas.
Remarquez que selector.matchLabels doit correspondre à template.metadata.labels. Cela indique au déploiement quels Pods lui appartiennent.
apiVersion: apps/v1
kind: Deployment
metadata:
name: my-nginx-deployment
labels:
app: nginx
spec:
replicas: 3
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:latest
ports:
- containerPort: 80Appliquer le déploiement
Pour créer ce déploiement dans votre cluster Kubernetes, par exemple Minikube, utilisez la commande kubectl apply. Enregistrez le YAML ci-dessus sous le nom nginx-deployment.yaml.
kubectl crée l’objet Deployment. Le contrôleur du déploiement détecte ensuite cet objet et agit en créant un ReplicaSet, qui crée à son tour les 3 Pods Nginx.
kubectl apply -f nginx-deployment.yamlInspecter votre déploiement
Une fois le déploiement appliqué, vous pouvez vérifier l’état de votre déploiement et des Pods qu’il gère :
kubectl get deployments: affiche votre déploiement.kubectl get replicasets: affiche le ReplicaSet créé par le déploiement.kubectl get pods -l app=nginx: affiche les Pods gérés par le déploiement, au moyen de son sélecteur d’étiquettes.kubectl describe deployment my-nginx-deployment: fournit des informations détaillées sur le déploiement, notamment les événements.
kubectl get deployments
kubectl get pods -l app=nginx
kubectl describe deployment my-nginx-deploymentMaintenir l’état souhaité
L’une des fonctionnalités les plus puissantes des déploiements est leur capacité à maintenir l’état souhaité. Si vous avez défini replicas: 3, le déploiement veillera à ce que 3 Pods soient toujours en cours d’exécution.
Essayez de supprimer manuellement l’un des Pods Nginx (kubectl delete pod <pod-name>). Vous verrez le déploiement en créer rapidement un nouveau pour le remplacer ! C’est l’auto-rétablissement en action.
Vérification rapide
Quel type d’application un déploiement sert-il principalement à gérer ?
Récapitulatif : comprendre les déploiements
Excellent travail ! Vous avez fait vos premiers pas avec les déploiements Kubernetes.
- Les déploiements sont des objets de niveau supérieur destinés à gérer les applications sans état.
- Ils automatisent la création, la mise à l’échelle et l’auto-rétablissement des Pods en gérant des ReplicaSets.
- Vous définissez un déploiement à l’aide d’un manifeste YAML, en indiquant le nombre souhaité de
replicaset untemplatepour les Pods. kubectl applycrée le déploiement, tandis quekubectl get/describevous aide à le surveiller.
Ensuite, nous examinerons plus en détail les ReplicaSets et la manière dont ils garantissent le nombre souhaité de Pods !
Questions Fréquemment Posées
La leçon « Comprendre les Deployments » est-elle gratuite ?
Oui — le texte complet de « Comprendre les Deployments » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Kubernetes Basics, passe à CoddyKit PRO. Le cours Kubernetes Basics comprend 4 leçons au total.
Qu'est-ce que j'apprendrai dans « Comprendre les Deployments » ?
Découvrez comment les Deployments automatisent la gestion des Pods et des ReplicaSets pour les applications sans état. Tu pratiques Kubernetes Basics avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.
Dois-je avoir de l'expérience pour commencer Kubernetes Basics ?
Aucune expérience préalable n'est requise. Kubernetes Basics sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 1 sur 4.
Combien de temps prend la leçon « Comprendre les Deployments » ?
La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.
Peux-tu écrire et exécuter du code dans cette leçon Kubernetes Basics ?
Oui. Chaque leçon Kubernetes Basics inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.
Toutes les leçons de ce cours
- Comprendre les Deployments
- Mettre les applications à l’échelle avec les ReplicaSets
- Mises à jour progressives et retours en arrière
- Stratégies de déploiement : blue-green et canary