GNU/Linux >> Tutoriels Linux >  >> Linux

Comment déployer un service sur un cluster Docker Swarm

En savoir plus sur les centres de données

Docker Swarm est l'un des clusters de conteneurs les plus faciles à déployer. En quelques minutes, votre cluster peut être opérationnel pour la haute disponibilité, le basculement et l'évolutivité. Une fois opérationnel, vous pouvez ensuite déployer des conteneurs sur l'essaim pour tirer parti du cluster. Par exemple, vous pouvez déployer un service qui peut évoluer pour répondre à toute demande qui se présente.

C'est exactement ce que je vais vous montrer. Ici, nous allons d'abord installer Docker Swarm, puis déployer un service sur le nouveau cluster de sorte qu'il puisse être mis à l'échelle au degré qui convient aux besoins de votre entreprise.

Ce dont vous aurez besoin

Je ferai une démonstration sur un cluster composé d'un contrôleur et de deux nœuds, qui fonctionneront tous sur Ubuntu Server 20.04. Si vous utilisez une autre distribution Linux, vous devrez peut-être modifier les étapes d'installation de Docker (mais rien de plus).

Cela dit, passons à l'essaimage.

Comment installer Docker

La première chose que nous devons faire est d'installer Docker. Assurez-vous de suivre ces mêmes étapes sur votre contrôleur et quel que soit le nombre de nœuds que vous prévoyez de déployer.

Connectez-vous à votre serveur et mettez à jour apt avec :

sudo apt-get update

Ensuite, installez les dépendances nécessaires avec la commande :

sudo apt-get install ca-certificates curl gnupg lsb-release -y

Ajoutez la clé Docker GPG officielle :

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

Ajoutez le dépôt stable Docker avec :

echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

Installez Docker Engine avec :

sudo apt-get update

sudo apt-get install docker-ce docker-ce-cli containerd.io -y

Démarrez et activez Docker avec :

sudo systemctl enable --now docker

Ajoutez votre utilisateur au groupe docker avec la commande :

sudo usermod -aG docker $USER

Informez le système du nouveau groupe avec :

newgrp docker

Répétez les étapes ci-dessus pour tous vos nœuds.

De retour au contrôleur Docker, initialisez l'essaim avec :

docker swarm init --advertise-addr SERVER

Où SERVER est l'adresse IP du contrôleur Docker.

Vous serez alors présenté avec la commande de jointure qui ressemblera à ceci :

docker swarm join --token SWMTKN-1-46uxtlbe3wrelly1fe5e65p1wdvg95bcjo48izvptpwof62rdo-42yl4jprovhng56sgxmyv7arv 192.168.1.13:2377

Copiez cette commande et exécutez-la à partir de tous vos nœuds. Une fois que vous avez fait cela, vous pouvez vérifier la jointure en exécutant la commande suivante sur le contrôleur :

docker info

Vous devriez voir une sortie semblable à celle-ci :

Swarm: active

NodeID: wb44efzwy68x9gek45ee1nbnb

Is Manager: true

ClusterID: vjec4hz1sjj535x9w0mspox87

Managers: 1

Nodes: 3

Default Address Pool: 10.0.0.0/8

SubnetSize: 24

Data Path Port: 4789

Orchestration:

Task History Retention Limit: 5

Comment déployer un service sur l'essaim

Maintenant, nous pouvons déployer un service sur notre essaim. Gardons cela simple au début et déployons un service de conteneur NGINX avec lequel nous ne pouvons pas interagir. Pour ce faire, exécutez la commande suivante sur le contrôleur :

docker service create --name nginx_test nginx

Pour vérifier l'état du service, lancez la commande :

docker service ls

Vous devriez voir que notre service NGINX a été répliqué avec une sortie semblable à celle-ci :

zie1n4nm5es3   nginx_test             replicated   1/1                nginx:latest

Notre exemple ci-dessus ne profite que de l'un de nos nœuds. Et si nous voulions déployer ce service sur les trois nœuds ? Pour cela, notre commande ressemblerait à ceci :

docker service create --replicas 3 --name nginx3nodes nginx

Exécutez la commande :

docker service ls

Vous devriez voir que notre déploiement nginx3nodes a été répliqué sur 3 des 3 nœuds avec le résultat suivant :

y1yu8fq27aab   nginx3nodes              replicated   3/3                nginx:latest

Le service tire désormais parti des trois nœuds de notre cluster. Vous pouvez réduire ce service à 2 nœuds avec la commande :

docker service scale nginx3nodes=2

Vérifiez l'état avec :

docker service ls

Vous devriez maintenant voir le service nginx sur 2/2 nœuds.

Disons que vous avez cinq nœuds dans votre essaim. Si vous souhaitez étendre le service aux cinq nœuds, la commande serait :

docker service scale nginx3nodes=5

Pour supprimer le service, vous devez émettre la commande :

docker service rm nginx3nodes

Supposons que vous souhaitiez mettre à jour l'image du conteneur dans votre déploiement. Quelques jours se sont écoulés depuis son déploiement initial et vous souhaitez vous assurer que vous utilisez la dernière image de conteneur disponible. Nous supposerons que nginx:latest est une image de conteneur mise à jour et pour mettre à jour ce service avec la nouvelle image, vous lancerez la commande :

docker service update --image nginx:latest nginx3nodes

Une dernière note, si vous souhaitez gérer plus facilement le swarm, déployez Portainer sur le contrôleur avec la commande :

docker run -d -p 8000:8000 -p 9443:9443 --name=portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer-ce

Une fois déployé, rendez-vous sur http://SERVER:9443 (Où SERVER est l'adresse IP du serveur). Après avoir créé un utilisateur administrateur et vous être connecté, vous devriez voir Swarm répertorié dans la navigation de gauche. Cliquez dessus pour afficher votre cluster (Figure A ).

Figure A

Et c'est à peu près la base de la création d'un Docker Swarm et du déploiement d'un service sur les nœuds.

Abonnez-vous à TechRepublic Comment faire fonctionner la technologie sur YouTube pour tous les derniers conseils techniques pour les professionnels de Jack Wallen.

Lien source


Linux
  1. Comment déployer l'équilibrage de charge Nginx sur le cluster Kubernetes sur Ubuntu 18.04 LTS

  2. Comment déployer votre premier pod sur un cluster Kubernetes

  3. Comment déployer des microservices avec Docker

  4. Comment déployer des applications avec Rancher

  5. Comment déployer un conteneur nginx avec Docker sur Linode

Comment installer un cluster Kubernetes Docker sur CentOS 7

Comment installer et configurer un cluster Docker Swarm sur CentOS 8

Comment déployer un cluster Kubernetes sur AWS avec Amazon EKS

Comment déployer Pi-Hole sur Debian 11

Comment déployer CouchDB en tant que cluster avec Docker

Comment déployer un conteneur Docker sur Jelastic Cloud