⚠️ Traduction non officielle - Cette documentation est une traduction communautaire non officielle de Docker.

Mode Swarm

Note

Le mode Swarm est une fonctionnalité avancée pour la gestion d'un cluster de démons Docker.

Utilisez le mode Swarm si vous avez l'intention d'utiliser Swarm comme environnement d'exécution de production.

Si vous ne prévoyez pas de déployer avec Swarm, utilisez Docker Compose à la place. Si vous développez pour un déploiement Kubernetes, envisagez d'utiliser la fonctionnalité Kubernetes intégrée dans Docker Desktop.

Les versions actuelles de Docker incluent le mode Swarm pour gérer nativement un cluster de Docker Engines appelé un swarm. Utilisez la CLI Docker pour créer un swarm, déployer des services d'application dans un swarm, et gérer le comportement du swarm.

Le mode Docker Swarm est intégré dans Docker Engine. Ne confondez pas le mode Docker Swarm avec Docker Classic Swarm qui n'est plus activement développé.

Points forts des fonctionnalités

Gestion de cluster intégrée avec Docker Engine

Utilisez la CLI Docker Engine pour créer un swarm de Docker Engines où vous pouvez déployer des services d'application. Vous n'avez pas besoin de logiciel d'orchestration supplémentaire pour créer ou gérer un swarm.

Conception décentralisée

Au lieu de gérer la différenciation entre les rôles de nœuds au moment du déploiement, Docker Engine gère toute spécialisation à l'exécution. Vous pouvez déployer les deux types de nœuds, les gestionnaires et les travailleurs, en utilisant Docker Engine. Cela signifie que vous pouvez construire un swarm entier à partir d'une seule image disque.

Modèle de service déclaratif

Docker Engine utilise une approche déclarative pour vous permettre de définir l'état désiré des différents services dans votre pile d'application. Par exemple, vous pourriez décrire une application composée d'un service front-end web avec des services de mise en file d'attente de messages et un backend de base de données.

Mise à l'échelle

Pour chaque service, vous pouvez déclarer le nombre de tâches que vous voulez exécuter. Lorsque vous montez ou descendez en charge, le gestionnaire swarm s'adapte automatiquement en ajoutant ou supprimant des tâches pour maintenir l'état désiré.

Réconciliation de l'état désiré

Le nœud gestionnaire swarm surveille constamment l'état du cluster et réconcilie toute différence entre l'état actuel et votre état désiré exprimé. Par exemple, si vous configurez un service pour exécuter 10 répliques d'un conteneur, et qu'une machine travailleur hébergeant deux de ces répliques plante, le gestionnaire crée deux nouvelles répliques pour remplacer les répliques qui ont planté. Le gestionnaire swarm assigne les nouvelles répliques aux travailleurs qui sont en cours d'exécution et disponibles.

Réseau multi-hôte

Vous pouvez spécifier un réseau overlay pour vos services. Le gestionnaire swarm assigne automatiquement des adresses aux conteneurs sur le réseau overlay lorsqu'il initialise ou met à jour l'application.

Découverte de service

Les nœuds gestionnaires swarm assignent à chaque service dans le swarm un nom DNS unique et équilibrent la charge des conteneurs en cours d'exécution. Vous pouvez interroger chaque conteneur en cours d'exécution dans le swarm via un serveur DNS intégré dans le swarm.

Équilibrage de charge

Vous pouvez exposer les ports des services à un équilibreur de charge externe. En interne, le swarm vous permet de spécifier comment distribuer les conteneurs de service entre les nœuds.

Sécurisé par défaut

Chaque nœud dans le swarm applique l'authentification mutuelle TLS et le chiffrement pour sécuriser les communications entre lui-même et tous les autres nœuds. Vous avez l'option d'utiliser des certificats racine auto-signés ou des certificats d'une CA racine personnalisée.

Mises à jour progressives

Au moment du déploiement, vous pouvez appliquer les mises à jour de service aux nœuds de manière incrémentale. Le gestionnaire swarm vous permet de contrôler le délai entre le déploiement du service sur différents ensembles de nœuds. Si quelque chose va mal, vous pouvez revenir à une version précédente du service.

Et ensuite ?