Introduction à Docker Swarm / Définition

Un essaim de dockers est l'un des outils disponibles dans les conteneurs Docker qui sont une plate-forme / un outil d'orchestration de conteneurs open-source. Il est également appelé l'outil de clustering et de planification natif de Docker. Lorsque la taille des conteneurs augmente, il devient très difficile de gérer tout cela là où le rôle de Swarm entre en jeu. Il aide les développeurs et les administrateurs à gérer et à établir un cluster de nœuds Docker sous la forme d'un seul virtuel machine.

Les concepts / termes clés utilisés pour Docker Swarm

  • Swarm - Un essaim est composé de nombreux systèmes / hôtes Docker qui s'exécutent en mode essaim.
  • Swarmkit - Un Swarmkit est utilisé pour implémenter la couche d'orchestration de Docker.
  • Tâche - Une tâche comprend des commandes et le conteneur qui doivent être exécutés à l'intérieur du conteneur. Les tâches sont distribuées par le gestionnaire d'essaim aux nœuds.
  • Nodes - Node peut être défini comme un moteur Docker singulier et qui participe à l'essaim. Un bon déploiement d'essaim de production est celui qui a les nœuds de docker distribués répartis sur de nombreuses machines.
  • Service - Chaque fois qu'un service est créé, il spécifie le conteneur à utiliser et les commandes à exécuter à l'intérieur du conteneur. Le service est donc une liste de tâches qui doivent être exécutées sur les nœuds de travail ou de gestion.
  • Nœuds de gestionnaire - Le travail des nœuds de gestionnaire consiste à répartir les tâches vers les nœuds de travail. Les nœuds de gestionnaire sont également responsables de l'exécution d'autres fonctions telles que la gestion du cluster et l'orchestration.
  • Nœuds de travail - Le travail du nœud de travail consiste à saisir les tâches provenant du nœud de gestionnaire et à les exécuter. Un nœud de travail est installé avec des agents qui signalent les unités du travail qui lui sont attribuées aux nœuds de gestionnaire.
  • Noeuds de leader - Il sert de leader pour effectuer des tâches liées à l'orchestration.

Que peut-on faire en utilisant Docker Swarm

Swarm est très utile pour les administrateurs et les développeurs d'un écosystème Docker. Voici quelques-unes des tâches que le docker peut accomplir:

  • Il peut être utilisé pour mettre à l'échelle le nombre de conteneurs.
  • Pour établir la coordination entre les conteneurs.
  • Pour allouer des tâches au cluster de conteneurs.
  • Pour gérer le cycle de vie des conteneurs et également pour effectuer des contrôles de santé réguliers.
  • Pour servir le but de déployer les mises à jour pour le logiciel parmi les conteneurs.

Comprendre Docker Swarm / Travailler

Ci-dessous le fonctionnement de l'essaim de dockers qui sont les suivants:

Fonctionnement des nœuds

Comme nous l'avons vu, il existe deux types de nœuds, à savoir le gestionnaire et l'ouvrier. Examinons le fonctionnement des deux.

Les tâches gérées par les nœuds de gestionnaire sont les suivantes: - Planification des services, maintenance de l'état du cluster et exécution des points de terminaison de l'API HTTP. Il est conseillé d'exécuter plusieurs nœuds de gestionnaire, car cela vous aidera à profiter des fonctionnalités de tolérance aux pannes de l'essaim.

Les nœuds de travail exécutent les conteneurs et cela nécessite au moins 1 nœud de gestionnaire pour fonctionner.

Fonctionnement des services

Le seul but des services est de déployer une image d'application sur l'essaim Docker. Par exemple, un serveur DB, un serveur Web, des serveurs HTTP sont des exemples de services.

Processus et conditions de service:

  • Échec de la tâche - Chaque fois qu'une tâche échoue dans un essaim de dockers, elle n'est généralement pas redémarrée. Le travail de l'orchestrateur consiste donc à supprimer cette tâche qui a échoué et à la remplacer par la nouvelle qui correspond à l'état du service.
  • Option de service - Chaque fois qu'un service est créé, nous pouvons toujours définir un port sur lequel le service peut être utilisé (pour les utilisateurs externes), des limites de mémoire et de CPU peuvent être appliquées, des politiques de mise à jour peuvent être définies, etc.
  • Service en attente - Un service passe dans un état en attente quand aucun noeud n'est actuellement disponible dans l'essaim de docker pour exécuter la tâche.

Filtres Docker Swarm

L'essaim de docker a 5 filtres:

  • Affinité - Le filtre d'affinité vise à garantir que les conteneurs s'exécutent sur le même nœud de réseau et définit également la séquence dans laquelle les conteneurs doivent s'exécuter.
  • Port - Le port définit une ressource dédiée. Lorsqu'un conteneur s'exécute sur le port qui n'est pas libre, le conteneur se déplacera vers les autres nœuds disponibles.
  • Contrainte - Lorsqu'un nœud est créé, nous pouvons attribuer des paires clé-valeur à l'aide d'un filtre de contrainte.
  • Dépendance - Chaque fois qu'il existe une dépendance entre les conteneurs, les filtres de dépendance planifient ceux sur le même nœud.
  • Santé - Si l'un des nœuds est en panne et ne fonctionne pas, ce filtre ne lui affectera aucun conteneur.

Quelques commandes Docker Swarm:

ObjectifCommander
Création d'un essaimDocker swarm init
Rejoindre un essaimjonction d'essaimage docker \

–Token Token_number \

IP: Port

Créer un service et le nommerservice docker créer –nom Edu
Suppression d'un serviceservice docker supprimer Edu
Service de mise à jourmise à jour du service docker
Surveillance de la santé des nœudsdocker node ls

Avantages et inconvénients

Voyons maintenant les avantages et les inconvénients de l'essaim de dockers

Avantages:

  • Le déploiement est facile et le mode Swarm est fourni par défaut avec Docker Engine.
  • L'installation est simple et rapide.
  • L'intégration Swarm peut être facilement réalisée avec Docker CLI et Docker compose
  • Peu d'expérience est requise et l'apprentissage est facile.

Désavantages:

  • Pour étendre les services, une intervention manuelle est requise.
  • Il a une tolérance aux pannes limitée.
  • Des fonctions plus étendues ne sont pas disponibles pour l'instant.
  • Il a une communauté plus petite que d'autres outils d'orchestration disponibles comme Kubernetes.

Conclusion

Dans cet article, nous avons commencé avec un aperçu et une définition de base de l'essaim Docker et nous avons également vu les termes importants utilisés dans la technologie de l'essaim qui fait partie de l'écosystème. Ensuite, nous avons essayé de comprendre le fonctionnement de Docker swarm et avons également appris quelques commandes Docker utilisées en mode swarm.

Articles recommandés

Cela a été un guide pour Qu'est-ce que Docker Swarm?. Ici, nous avons discuté du concept, de la commande, des filtres, de l'utilisation et de la compréhension de Docker Swarm. Vous pouvez également consulter nos autres articles suggérés pour en savoir plus -

  1. Questions d'entretiens chez Docker
  2. Qu'est-ce que Cassandra?
  3. Questions d'entretiens chez Microservices
  4. Qu'est-ce que Jenkins?