0Pricing
DevOps Bootcamp · Leçon

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 DevOps Bootcamp 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 DevOps Bootcamp, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours DevOps Bootcamp 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 :

  • apiVersion et kind : 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: 80

Appliquer 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.yaml

Inspecter 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-deployment

Maintenir 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 replicas et un template pour les Pods.
  • kubectl apply crée le déploiement, tandis que kubectl get/describe vous 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 DevOps Bootcamp, passe à CoddyKit PRO. Le cours DevOps Bootcamp 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 DevOps Bootcamp 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 DevOps Bootcamp ?

Aucune expérience préalable n'est requise. DevOps Bootcamp 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 DevOps Bootcamp ?

Oui. Chaque leçon DevOps Bootcamp 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

  1. Comprendre les Deployments
  2. Mettre les applications à l’échelle avec les ReplicaSets
  3. Mises à jour progressives et retours en arrière
  4. Stratégies de déploiement : blue-green et canary
← Retour à DevOps Bootcamp