Architecture de l'essaim Docker - Comment fonctionnent les nœuds et les services?

Table des matières:

Anonim

Introduction à l'architecture Docker Swarm

Docker Swarm est un outil de clustering et d'orchestration pour conteneurs qui est intégré dans Docker Engine pour le système distribué qui implique des centaines de conteneurs. Les tâches Docker Node, Docker Services et Docker sont des composants clés de l'architecture Swarm Docker.

  • Docker Node: il s'agit de l'instance Docker Engine incluse dans l'essaim Docker, qui a deux types:
  • Nœud de gestionnaire: responsable de toutes les tâches d'orchestration et de gestion des conteneurs requises pour maintenir le système dans l'état souhaité, telles que la maintenance de l'état du cluster, la planification des services et la maintenance des points de terminaison HTTP en mode essaim.
  • Docker Service: c'est la définition de la tâche qui doit être exécutée.

Architecture typique de Docker Swarm

Voici les points de l'architecture typique des essaims de dockers:

  • Le nœud est le membre clé de l'architecture de l'essaim de docker, une architecture de l'essaim peut avoir plus d'un nœud de gestionnaire dirigé par un seul nœud de gestionnaire élu à l'aide de l'algorithme Raft, un nœud de gestionnaire peut également fonctionner comme nœud de travail mais peut être configuré pour fonctionner comme gestionnaire nœud aussi.
  • Les nœuds de gestionnaire utilisent l'algorithme de consensus Raft pour gérer en interne l'état du cluster. Cela permet de garantir que tous les nœuds de gestionnaire qui planifient et contrôlent des tâches dans le cluster maintiennent / stockent un état cohérent.
  • Un essaim est un cluster de moteurs Docker ou nœuds, où nous déployons nos services. Au tout début, Docker a mis au point un système de gestion de cluster avec un protocole de communication appelé Beam. Plus tard, ils ont ajouté plus d'API et l'ont renommé en essaim. L'essaim de première génération est appelé «essaim v1».

Flux de travail de Docker Swarm

Le flux de travail de docker swarm consiste à comprendre le fonctionnement des nœuds et des services dans une architecture de docker swarm:

Étape 1: La première étape consiste à créer un ensemble de docker-machine qui agira en tant que nœuds dans l'essaim de dockers , l' un de ces nœuds sera le gestionnaire, les nœuds restants agiront en tant que nœuds de travail. Pour créer un docker-machine, utilisez la commande sous Windows, lancez le terminal docker.

docker-machine create –driver hyperv manager1

  • Où «manager1» est le nom du docker-machine, pour lister les machines et il est exécuté respectivement.

docker-machine ls
docker-machine ip manager1

Étape 2: La deuxième étape consiste à créer des machines de travail, utilisez la commande ci-dessous pour créer autant de machines de travail que vous le souhaitez, créons ici 3 travailleurs.

docker-machine create –driver hyperv worker1
docker-machine create –driver hyperv worker2
docker-machine create –driver hyperv worker3

  • Nous pouvons nous connecter au gestionnaire ou au travailleur à l'aide de la commande ci-dessous, qui vous amènera à l'intérieur de la machine.

docker-machine ssh manager1/worker1

Étape 3: La troisième étape consiste à initialiser l'essaim de docker, nous devons exécuter cette commande sur la machine que nous voulons travailler en tant que gestionnaire, c'est ainsi que nous créons le gestionnaire de nœuds, nous pouvons également ajouter d'autres gestionnaires.

docker-machine ssh manager1
docker swarm init –advertise-and Manager1 IP

Étape 4: La quatrième étape consiste à joindre les nœuds de travail à l'essaimage, à obtenir la commande pour rejoindre le nœud en tant que travailleur à l'aide de la commande ci-dessous sur la machine gestionnaire et à exécuter la commande que vous avez sur la machine de travail que vous souhaitez créer.

Docker swarm join-token worker1

  • Pour vérifier si le travailleur est joint à l'essaimage ou non, accédez à la machine du gestionnaire et exécutez la commande, il répertorie la machine du travailleur ajoutée avec les détails du gestionnaire.

docker-machine ls

Étape 5: La cinquième étape consiste à exécuter les commandes standard de docker sur le gestionnaire.

docker info (fetches details about docker swarm)
docker swarm (commands that can run on docker swarm such as join, leave, update, init and unlock etc)

Étape 6: L' étape six consiste à exécuter les conteneurs de docker sur l'essaim de dockers, nous pouvons créer n'importe quel service et ses répliques. Allez sur ub.docker.com, connectez-vous et allez explorer les dépositaires, nous pouvons voir différentes images qui sont des moteurs, par exemple, nginx (il fonctionne sur le serveur Web) crée un service et sa réplique utilise la commande ci-dessous sur le gestionnaire.

docker service create –replicas 3 -p 80:80 –name sample nginx

  • Où «échantillon» est le nom du service et 80 est le port qui est exposé pour vérifier l'état de la commande d'exécution de service ci-dessous sur le nœud du gestionnaire.

docker service ls
docker service ps sample

Vérifiez le service en cours d'exécution sur tous les nœuds et vérifiez également le navigateur en donnant l'IP pour tous les nœuds.

Étape 7: Étape sept, nous pouvons maintenant voir l'utilisation réelle de l'essaim de docker où nous évoluons le service de haut en bas. Pour mettre à l'échelle un service, exécutez la commande ci-dessous sur la machine gestionnaire

docker service scale sample=4

  • La commande ci-dessus fera en sorte que l'exemple de service s'exécute sur 4 nœuds, même si tous les nœuds sont occupés, il créera un autre service sur le gestionnaire ou le travailleur. De la même manière, nous pouvons réduire le service.

docker service scale sample=2

  • Nous pouvons également inspecter le nœud pour obtenir des détails comme le nombre et le service qui s'exécutent sur un nœud en exécutant les commandes ci-dessous sur le nœud gestionnaire

docker node inspect worker1/manager1
docker node inspect self

Étape 8: L' étape huit consiste à mettre à jour le service lorsque le service s'exécute sur plusieurs machines et si nous voulons mettre à jour le service, c'est très simple et, par exemple, si nous voulons mettre à jour la version du service nginx.

docker service update –image nginx:1.14.0 sample

Étape 9: arrêt / arrêt / suppression.

  • Pour arrêter un nœud particulier, utilisez la commande ci-dessous, qui change le statut du nœud en «drain».

docker node update –availability drain worker1

  • Pour supprimer le service de toutes les machines.

docker service rm sample

  • Quitter l'essaim, ce qui change le statut du 'down'.

docker swarm leave

  • Pour arrêter une machine (Exécuter à partir du terminal docker, pas dans la machine gestionnaire ou de travail)

docker-machine stop worker1
docker-machine rm worker1

Avantages de l'architecture Docker Swarm

Ci-dessous, les points montrent les avantages de Docker Swarm Architecture:

  1. Conception décentralisée: nous pouvons gérer les clusters d'essaims via la commande swarm, cela donne un seul p (une once d'accès pour construire l'essaim entier.
  2. C'est très simple par rapport à Kubernetes.
  3. Haute disponibilité: parmi les nœuds disponibles en essaim si le maître tombe en panne, un autre nœud de travail prendra la charge.
  4. Réconciliation de l'état souhaité: le gestionnaire d'essaim garde une trace de l'état du cluster afin que l'état souhaité et réel soit toujours le même.
  5. Lorsque nous spécifions un sur-réseau pour se connecter à vos services, le gestionnaire d'essaim attribue des adresses au conteneur sur le réseau de superposition une fois que nous avons créé / mis à jour les conteneurs
  6. Mises à jour continues: les mises à jour de service peuvent être effectuées de manière incrémentielle. Swarm Manager vous permet de spécifier le délai entre chaque mise à jour sans aucun temps d'arrêt.

Conclusion

Docker swarm est un outil simple à la place de gros outils qui accomplissent la tâche, Docker with swarm fournit l'orchestration dont nous avons besoin, il est facile à configurer et expédie le natif avec le moteur docker que nous allons installer et utiliser de toute façon.

Articles recommandés

Ceci est un guide de l'architecture Docker Swarm. Ici, nous discutons du fonctionnement des nœuds et des services dans une architecture swarm docker avec leurs avantages. Vous pouvez également consulter nos autres articles connexes pour en savoir plus -

  1. Architecture Docker
  2. Qu'est-ce que Docker Swarm?
  3. Swarm Intelligence Applications
  4. La technologie Swarming aide-t-elle les équipes agiles à se développer?