GNU/Linux >> Tutoriels Linux >  >> Cent OS

Comment installer et configurer le mode Docker Swarm sur CentOS 7 / RHEL 7

Le mode Docker Swarm est l'outil d'orchestration et de clustering d'un conteneur pour la gestion de l'hôte Docker. Le mode Docker Swarm est la partie native du moteur Docker. Cela signifie que vous n'avez rien à installer à part le moteur Docker, car le mode essaim Docker fait partie du moteur Docker.

Le mode essaim Docker est introduit dans Docker 1.12. Certains des principaux avantages du mode essaim Docker sont l'autoréparation des conteneurs , équilibrage de charge , mise à l'échelle du conteneur et réduire , découverte de services et mises à jour continues . Dans les deux derniers articles, nous avons abordé les sujets suivants

  • Comment installer Docker sur CentOS 7
  • Comment créer des images de conteneur Docker avec Dockerfile

Dans cet article, nous expliquerons comment installer et configurer le mode Docker Swarm sur CentOS 7.x / RHEL 7.x Pour la démonstration, j'utiliserai 3 CentOS 7.x ou RHEL 7.x Serveurs sur lesquels je vais installer docker engine. Dont deux serveurs agiront en tant que Docker Engine ou nœud de travail et l'autre agira en tant que manager . Dans mon cas, j'utilise les éléments suivants :

  • dkmanager.example.com (172.168.10.70 ) - Il agira en tant que gestionnaire qui gérera le moteur ou les hôtes Docker ou le nœud de travail et il fonctionnera également comme moteur Docker.
  •  workernode1.example.com ( 172.168.10.80 ) – il agit sur le moteur Docker ou le nœud de travail
  • workernode2.example.com ( 172.168.10.90 ) - il agira sur le moteur Docker ou le nœud de travail

Mettez à jour les lignes suivantes dans le fichier /etc/hosts sur tous les serveurs

172.168.10.70    dkmanager.example.com   dkmanager172.168.10.80    workernode1.example.com         workernode1172.168.10.90    workernode2.example.com         workernode2

Étape 1 :Installez Docker Engine sur tous les hôtes

Définissez d'abord le référentiel docker, puis exécutez la commande sous sur tous les hôtes.

[[email protected] ~]# yum install yum-utils –y[[email protected] ~]# yum-config-manager --add-repo https://download.docker.com/linux/centos/ docker-ce.repo[[email protected] ~]# yum install docker-ce docker-ce-cli containerd.io –y[[email protected] ~]# systemctl start docker[[email protected] ~]# systemctl enable docker 

Répétez les étapes ci-dessus pour workernode1 et workernode2

Remarque :Au moment de la rédaction de cet article, la version 1.13 de Docker était disponible.

Étape : 2 Ouvrez les ports du pare-feu sur les nœuds de gestionnaire et de travail

Ouvrez les ports suivants dans le pare-feu du système d'exploitation sur Docker Manager à l'aide des commandes ci-dessous

[[email protected] ~]# firewall-cmd --permanent --add-port=2376/tcpsuccess[[email protected] ~]# firewall-cmd --permanent --add-port=2377/tcpsuccess[ [email protected] ~]# firewall-cmd --permanent --add-port=7946/tcpsuccess[[email protected]ager ~]# firewall-cmd --permanent --add-port=7946/udpsuccess[[email protected] ] ~]# firewall-cmd --permanent --add-port=4789/udpsuccess[[email protected] ~]# firewall-cmd --permanent --add-port=80/tcpsuccess[[email protected] ~]# firewall-cmd --reloadsuccess[[email protected] ~]#

Redémarrez le service Docker sur Docker Manager

[[email protected] ~]# docker de redémarrage systemctl

Ouvrez les ports suivants sur chaque nœud de travail et redémarrez le service docker

~]# firewall-cmd --permanent --add-port=2376/tcp~]# firewall-cmd --permanent  --add-port=7946/tcp~]# firewall-cmd --permanent -- add-port=7946/udp~]#  firewall-cmd --permanent --add-port=4789/udp~]# firewall-cmd --permanent --add-port=80/tcp~]#  firewall-cmd - -reload~]#  systemctl redémarrer docker

Étape :3 Initialisez l'essaim ou le cluster à l'aide de la commande "docker swarm init"

Exécutez la commande ci-dessous à partir du nœud du gestionnaire (dkmanager) pour initialiser le cluster.

[[email protected] ~]# docker swarm init --advertise-addr 172.168.10.70

Cette commande fera de notre nœud un nœud de gestionnaire et nous publions également l'adresse IP du gestionnaire dans la commande ci-dessus afin que le nœud esclave ou travailleur puisse rejoindre le cluster.

Exécutez la commande ci-dessous pour vérifier l'état du gestionnaire et afficher la liste des nœuds de votre cluster

[[email protected] ~]# docker node lsID                         HOSTNAME               STATUS  AVAILABILITY  MANAGER STATUSn64oy2sml1w188ps109mai67b *  dkmanager.example.com  Ready   Active         Leader pré      

Nous pouvons également utiliser les "info docker ” commande pour vérifier l'état de l'essaim

Étape 3 Ajouter des nœuds de travail à l'essaim ou au cluster

Pour ajouter des nœuds de travail à l'essaim ou au cluster, exécutez la commande que nous obtenons lorsque nous initialisons l'essaim. Un exemple de commande est illustré à l'étape 3

[[email protected] ~]# docker swarm join --token SWMTKN-1-4jjyu1btmdky0ou6gl2dwgt24bolpsdn5yd77pohmcnmz0s288-11xwcvzjar29fskkhfvlzsmhr 172.168.10.70:2377Ce nœud a rejoint un swarm en tant que nœud de calcul. ~]# docker swarm join --token SWMTKN-1-4jjyu1btmdky0ou6gl2dwgt24bolpsdn5yd77pohmcnmz0s288-11xwcvzjar29fskkhfvlzsmhr 172.168.10.70:2377Ce nœud a rejoint un essaim en tant que travailleur.[[email protected] ~]#

Vérifiez l'état du nœud à l'aide de la commande "docker node ls ” du gestionnaire de docker

À ce stade, notre mode ou cluster docker swarm est opérationnel avec deux nœuds de travail. Dans la prochaine étape, nous verrons comment définir un service.

Étape :4 Lancement du service en mode Docker Swarm

En mode essaim Docker, les conteneurs sont remplacés par le mot tâches et les tâches (ou conteneurs) sont lancées et déployées en tant que service et Supposons que je veuille créer un service avec le nom "webserver" avec cinq conteneurs et que vous souhaitez vous assurer que l'état souhaité des conteneurs à l'intérieur du service est de cinq.

Exécutez les commandes ci-dessous à partir de Docker Manager uniquement.

[[email protected] ~]# docker service create -p 80:80 --name webserver --replicas 5 httpd7hqezhyak8jbt8idkkke8wizi[[email protected] ~]#

La commande ci-dessus créera un service avec le nom "webserver", dans lequel l'état souhaité des conteneurs ou de la tâche est 5 et les conteneurs seront lancés à partir de l'image docker "httpd “. Les conteneurs seront déployés sur les nœuds du cluster, c'est-à-dire dkmanager , workernode1 et workernode2

Répertoriez le service Docker avec la commande ci-dessous

[[email protected] ~]# lsID du service docker            NOM       MODE        RÉPLIQUES  IMAGE7hqezhyak8jb  serveur web  répliqué   5/5       httpd:latest[[email protected] ~]#

Exécutez la commande ci-dessous pour afficher l'état de votre service "serveur Web"

[[email protected] ~]# serveur web ps du service docker

Selon la sortie ci-dessus, nous pouvons voir que les conteneurs sont déployés sur les nœuds du cluster, y compris le nœud du gestionnaire. Nous pouvons maintenant accéder à la page Web à partir de n'importe quel nœud de travail et Docker Manager en utilisant les URL suivantes :

http:// 172.168.10.70 ou  http://172.168.10.80 ou http://172.168.10.90

Étape 5 :Testez maintenant l'autoréparation du conteneur

L'auto-guérison des conteneurs est la caractéristique importante du mode docker swarm. Comme son nom l'indique, si quelque chose ne va pas avec container , le gestionnaire s'assurera qu'au moins 5 conteneurs doivent être en cours d'exécution pour le service "webserver". Supprimons le conteneur de workernode2 et voyons si un nouveau conteneur est lancé ou non.

[[email protected] ~]# docker ps[[email protected] ~]# docker rm a9c3d2172670 -f

Vérifiez maintenant le service à partir du gestionnaire de docker et voyez si un nouveau conteneur est lancé ou non

[[email protected] ~]# serveur web ps du service docker

Selon la sortie ci-dessus, nous pouvons voir qu'un nouveau conteneur est lancé sur le nœud dkmanager car l'un des conteneurs sur workernode2 est supprimé

Étape : 6 Mettre à l'échelle et réduire les conteneurs associés à un service

En mode essaim Docker, nous pouvons augmenter et réduire les conteneurs ou les tâches. Faisons évoluer les conteneurs à 7 pour le service 'webserver

[[email protected] ~]# docker service scale webserver=7webserver mis à l'échelle à 7[[email protected] ~]#

Vérifiez à nouveau l'état du service avec les commandes suivantes

Réduisons le conteneur à 4 pour le serveur Web de service

[[email protected] ~]# docker service scale webserver=4webserver mis à l'échelle à 4[[email protected] ~]#

Vérifiez à nouveau le service avec les commandes ci-dessous

C'est tout pour cet article. J'espère que vous avez une idée de la façon d'installer et de configurer le mode docker swarm sur CentOS 7.x et RHEL 7.x. N'hésitez pas à partager vos retours et commentaires 🙂


Cent OS
  1. Comment installer et configurer R sur le système Linux RHEL 8 / CentOS 8

  2. Comment installer Docker sur CentOS 7 / RHEL 7

  3. Comment installer et configurer docker dans Rocky Linux/Centos 8

  4. CentOS / RHEL 7 :Comment installer et configurer telnet

  5. Comment installer et configurer Samba dans CentOS / RHEL

Comment installer et configurer un cluster Docker Swarm sur CentOS 8

Comment installer et configurer le serveur VNC dans CentOS 7 / RHEL 7

Comment installer et configurer Docker Swarm sur CentOS 7 / Ubuntu 16.04 / Fedora 26/25

Comment installer et configurer Jenkins sur CentOS 8 / RHEL 8

Comment installer et configurer MariaDB dans CentOS / RHEL 7

Comment installer et configurer VNC Server sur CentOS/RHEL 8