0Pricing
Docker & DevOps Fundamentals · Leçon

Déploiements pour applications sans état

Utilisez les Deployments pour gérer les applications sans état, avec des mises à jour progressives et des retours en arrière.

Déploiements pour applications sans état est une leçon Docker & DevOps Fundamentals 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 Docker & DevOps Fundamentals, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Docker & DevOps Fundamentals comprend 4 leçons au total.

Découvrez les déploiements Kubernetes

Bienvenue dans un concept fondamental de Kubernetes : les déploiements ! Il s’agit de la ressource de référence pour gérer les applications sans état.

Imaginez un déploiement comme un plan directeur pour votre application. Il indique à Kubernetes combien de copies (réplicas) de votre application vous souhaitez maintenir en fonctionnement et comment les mettre à jour sans interruption de service.

Déploiements pour applications sans état — illustration 1

Au-delà des pods et des ReplicaSets

Vous avez découvert les pods (la plus petite unité) et les ReplicaSets (qui garantissent un certain nombre de pods).

Un déploiement s’appuie sur un ReplicaSet. Il fournit une abstraction de niveau supérieur pour :

  • créer et mettre à jour des ReplicaSets ;
  • déployer progressivement de nouvelles versions de votre application ;
  • revenir aux versions précédentes en cas de problème.

Cela rend la gestion de vos applications beaucoup plus simple et plus sûre.

À l’intérieur d’un YAML de déploiement

Comme les autres ressources Kubernetes, les déploiements sont définis à l’aide de YAML. Examinons la structure de base :

  • apiVersion : indique la version de l’API Kubernetes (par exemple, apps/v1).
  • kind : vaut toujours Deployment pour une ressource de déploiement.
  • metadata : contient des informations telles que le name du déploiement et ses éventuels labels.

Ces champs aident Kubernetes à identifier et à organiser vos déploiements.

Définir les réplicas et le modèle

Le cœur d’un déploiement est sa section spec. Vous y définissez :

  • replicas : le nombre souhaité de pods identiques pour votre application.
  • selector : la manière dont le déploiement trouve les pods qu’il gère (à l’aide d’étiquettes).
  • template : il s’agit essentiellement d’une définition de pod décrivant les conteneurs, les volumes, etc., de chaque pod.

Le template est utilisé par le déploiement pour créer de nouveaux pods.

Notre déploiement Nginx

Voici un manifeste de déploiement simple pour un serveur web Nginx. Il indique à Kubernetes de maintenir 3 pods Nginx en fonctionnement.

Essayez de comprendre chaque partie !

apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx-deployment
  labels:
    app: nginx
spec:
  replicas: 3
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: nginx:1.14.2
        ports:
        - containerPort: 80

Créer votre déploiement

Une fois votre fichier YAML de déploiement créé (par exemple, nginx-deployment.yaml), vous pouvez créer le déploiement dans votre cluster Kubernetes à l’aide de la commande kubectl apply.

Kubernetes veillera ensuite à ce que le nombre souhaité de pods soit créé et maintenu.

kubectl apply -f nginx-deployment.yaml

Vous pouvez vérifier son état avec :

kubectl get deployments

Augmenter et réduire l’échelle

Vous avez besoin de plus ou de moins d’instances de votre application ? Les déploiements facilitent la mise à l’échelle ! Vous pouvez modifier le champ replicas dans votre YAML et l’appliquer de nouveau, ou utiliser une commande directe :

kubectl scale deployment nginx-deployment --replicas=5

Cette commande indiquera immédiatement à votre déploiement de créer 2 pods Nginx supplémentaires, pour atteindre un total de 5.

Mises à jour sans interruption de service

L’un des principaux avantages des déploiements est leur capacité à effectuer des mises à jour progressives. Lorsque vous mettez à jour le modèle de pod (par exemple, en modifiant la version de l’image), Kubernetes n’arrête pas tous les anciens pods en même temps.

À la place, il remplace progressivement les anciens pods par de nouveaux, afin que votre application reste disponible pendant toute la durée de la mise à jour.

kubectl set image deployment/nginx-deployment nginx=nginx:1.16.1

Effectuer facilement une restauration

Vous avez fait une erreur lors d'une mise à jour ? Pas d'inquiétude ! Les déploiements conservent un historique de vos révisions, ce qui vous permet de revenir facilement à une version précédente et stable.

Cette opération s'appelle une restauration et constitue un filet de sécurité essentiel pour les déploiements.

kubectl rollout undo deployment/nginx-deployment

Vous pouvez également consulter l'historique avec kubectl rollout history deployment/nginx-deployment.

C'est l'heure du quiz sur les déploiements

Un développeur met à jour un déploiement Nginx, en remplaçant l'image nginx:1.14.2 par nginx:1.16.1. Quel est le principal avantage de l'utilisation d'un déploiement Kubernetes pour cette mise à jour ?

Déploiements : points essentiels

Excellent travail ! Vous avez découvert les déploiements Kubernetes, une ressource puissante pour gérer vos applications sans état.

  • Les déploiements gèrent les ReplicaSets, qui gèrent à leur tour les pods.
  • Ils définissent l'état souhaité, notamment le nombre de replicas.
  • Parmi leurs fonctionnalités essentielles figurent la mise à l'échelle facile, les mises à jour progressives sans interruption de service et les restaurations simples vers des versions précédentes.

Ensuite, nous découvrirons les services, qui permettent d'exposer vos applications !

Questions Fréquemment Posées

La leçon « Déploiements pour applications sans état » est-elle gratuite ?

Oui — le texte complet de « Déploiements pour applications sans état » 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 Docker & DevOps Fundamentals, passe à CoddyKit PRO. Le cours Docker & DevOps Fundamentals comprend 4 leçons au total.

Qu'est-ce que j'apprendrai dans « Déploiements pour applications sans état » ?

Utilisez les Deployments pour gérer les applications sans état, avec des mises à jour progressives et des retours en arrière. Tu pratiques Docker & DevOps Fundamentals 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 Docker & DevOps Fundamentals ?

Aucune expérience préalable n'est requise. Docker & DevOps Fundamentals 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 « Déploiements pour applications sans état » ?

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 Docker & DevOps Fundamentals ?

Oui. Chaque leçon Docker & DevOps Fundamentals 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. Déploiements pour applications sans état
  2. Services pour l’accès réseau
  3. ConfigMaps et Secrets
  4. Ingress et routage externe
← Retour à Docker & DevOps Fundamentals