Maison > Article > Opération et maintenance > qu'est-ce que l'essaim de dockers
swarm est un outil de gestion de cluster officiellement fourni par Docker. Sa fonction principale est de résumer plusieurs hôtes Docker en un tout et de gérer uniformément diverses ressources Docker sur ces hôtes Docker via une seule entrée.
L'environnement d'exploitation de ce tutoriel : système linux5.9.8, version docker-1.13.1, ordinateur Dell G3.
Swarm est une plateforme lancée par Docker pour gérer des clusters Docker. Elle est presque entièrement développée en utilisant le langage GO. Le code est open source sur https://github.com/docker/swarm. En tant qu'hôte virtuel unique, Swarm utilise l'interface API Docker standard comme entrée d'accès frontale. En d'autres termes, diverses formes de DockerClient (compose, docker-py, etc.) peuvent communiquer directement avec Swarm, et même Docker lui-même peut le faire. facilement Il est intégré à Swarm, ce qui facilite grandement la transplantation de systèmes initialement basés sur des nœuds uniques vers Swarm. Dans le même temps, Swarm prend en charge les plug-ins réseau Docker et les utilisateurs peuvent facilement déployer un cluster de conteneurs multi-hôtes. services.
Swarm est similaire à Kubernetes, mais est plus léger et possède moins de fonctionnalités que Kubernetes.
Docker Swarm se compose de deux aspects : un cluster de sécurité Docker au niveau de l'entreprise et un moteur d'orchestration d'applications de microservices.
En termes de clustering, Swarm organise un ou plusieurs nœuds Docker afin que les utilisateurs puissent les gérer dans un cluster.
Swarm dispose d'un magasin de cluster distribué crypté intégré, d'un réseau crypté, d'un TLS public (Mutual TLS), d'un jeton d'accès au cluster sécurisé (Secure Cluster Join Token) et d'un ensemble de certificats numériques simplifiés par défaut Managed PKI (Public Key Infrastructure). Nous pouvons ajouter ou supprimer des nœuds librement.
En termes d'orchestration, Swarm fournit un riche ensemble d'API qui facilitent le déploiement et la gestion d'applications de microservices complexes. En définissant votre application dans un fichier de configuration déclaratif, vous pouvez la déployer à l'aide des commandes Docker natives.
De plus, vous pouvez même effectuer des mises à niveau progressives, des restaurations et des opérations d'expansion et de contraction, qui peuvent également être effectuées sur la base de commandes simples.
Dans le passé, Docker Swarm était un produit indépendant basé sur le moteur Docker. Depuis la version 1.12 de Docker, il est entièrement intégré au moteur Docker et peut être activé en exécutant une seule commande. D'ici 2018, il sera capable de déployer et de gérer des applications Kubernetes en plus des applications natives Swarm.
Introduction préliminaire à Docker Swarm
Du point de vue d'un cluster, un Swarm se compose d'un ou plusieurs nœuds Docker. Ces nœuds peuvent être des serveurs physiques, des machines virtuelles, des Raspberry Pi ou des instances cloud. La seule condition préalable est que tous les nœuds soient connectés via un réseau fiable.
Le nœud sera configuré comme un nœud de gestion (Manager) ou un nœud travailleur (Worker). Le nœud de gestion est responsable du plan de contrôle du cluster (Control Plane), effectuant des opérations telles que la surveillance de l'état du cluster et la distribution des tâches aux nœuds de travail. Les nœuds de travail reçoivent des tâches des nœuds de gestion et les exécutent.
Les informations de configuration et d'état de Swarm sont stockées dans une base de données etcd distribuée située sur tous les nœuds de gestion. La base de données s'exécute en mémoire et maintient les données à jour. La meilleure chose à propos de cette base de données est qu'elle ne nécessite presque aucune configuration, elle est installée dans le cadre de Swarm et ne nécessite aucune administration.
Concernant la gestion du cluster, le plus grand défi est d'assurer sa sécurité. Lors de la configuration d'un cluster Swarm, vous utiliserez inévitablement TLS car il est étroitement intégré à Swarm.
À l’ère actuelle de sensibilisation croissante à la sécurité, des outils comme celui-ci méritent d’être vigoureusement promus. Swarm utilise TLS pour le cryptage des communications, l'authentification des nœuds et l'autorisation des rôles. La rotation automatique des touches est la cerise sur le gâteau ! Cela fonctionne silencieusement en arrière-plan et les utilisateurs ne remarquent même pas l’existence de cette fonctionnalité.
Concernant l'orchestration des applications, la plus petite unité de planification de Swarm est un service. Il a été introduit avec Swarm et constitue un nouvel élément objet de l'API. Il encapsule certaines fonctionnalités avancées basées sur des conteneurs et constitue un concept de niveau supérieur. Lorsqu'un conteneur est encapsulé dans un service, nous l'appelons une tâche ou une copie. Le service ajoute des fonctionnalités telles que l'expansion et la contraction, la mise à niveau continue et la simple restauration.
Pour résumer, regardez Swarm d'un point de vue général, comme le montre la figure ci-dessous.
Apprentissage recommandé : "Tutoriel vidéo Docker"
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!