Comment installer et configurer Docker Swarm Cluster sur Ubuntu

Docker Swarm est un outil qui te permet de déployer un cluster d’hôtes Docker. C’est un outil de clustering natif fourni par Docker qui offre une haute disponibilité et de hautes performances à ton application en la distribuant à tous les nœuds à l’intérieur du cluster Swarm.

Dans ce tutoriel, nous allons te montrer, étape par étape, comment créer un cluster Swarm en utilisant Ubuntu 16.04. Nous allons créer un cluster Swarm en utilisant 2 machines serveur Ubuntu, un nœud de serveur comme gestionnaire et un autre comme travailleur. Puis nous essaierons de déployer le service simple Nginx sur le cluster Swarm.

Conditions préalables

  • 2 ou plus – Serveur Ubuntu 16.04
    • manager 132.92.41.4
    • Travailleur01 132.92.41.5
  • Privilèges de racine

Ce que nous allons faire ?

  1. Configurer les hôtes
  2. Installer Docker-ce
  3. Initialisation de l’essaim Docker
  4. Déploiement du premier service sur le cluster

Étape 1 – Configurer les hôtes

Avant d’installer tout paquet pour le cluster swarm, nous allons configurer le fichier hosts sur les deux serveurs.

Exécute les commandes ci-dessous sur tous les serveurs, ‘manager’ et ‘worker01’.

Modifie le fichier ‘/etc/hosts’ à l’aide de l’éditeur vim.

vim /etc/hosts

Ajoute la configuration suivante à la fin de la ligne.

132.92.41.4    manager
132.92.41.5    worker01

Sauvegarde et quitte.

Maintenant, envoie un ping à tous les nœuds en utilisant le nom d’hôte au lieu de l’adresse IP.

ping -c 3 manager
ping -c 3 worker01

Et vérifie que cela fonctionne sur tous les hôtes.

Configuration des hôtes

Étape 2 – Installe Docker-ce

Pour créer le cluster swarm, nous devons installer Docker sur tous les nœuds du serveur. Dans cette étape, nous allons installer Docker-ce Community Edition sur les deux serveurs manager et worker01.

Installe les dépendances de Docker-ce à l’aide de la commande apt ci-dessous.

sudo apt install apt-transport-https software-properties-common ca-certificates -y

Ajoute maintenant la clé Docker et le référentiel Docker-ce à nos serveurs.

curl -fsSL https://download.docker.com/linux/debian/gpg | sudo apt-key add -
sudo echo "deb [arch=amd64] https://download.docker.com/linux/ubuntu xenial stable" > /etc/apt/sources.list.d/docker-ce.list

Mets à jour le référentiel et installe les paquets Docker-ce à l’aide de la commande apt install ci-dessous.

sudo apt update
sudo apt install docker-ce -y

Une fois l’installation terminée, démarre le service docker et active-le pour qu’il se lance à chaque fois au démarrage du système.

systemctl start docker
systemctl enable docker

Docker-ce est maintenant installé sur nos nœuds de serveur.

Ensuite, nous allons configurer docker pour qu’il fonctionne en tant qu’utilisateur normal ou utilisateur non root.

Crée un nouvel utilisateur nommé ‘mohammad’ et ajoute-le au groupe ‘docker’.

useradd -m -s /bin/bash mohammad
sudo usermod -aG docker mohammad

Maintenant, connecte-toi à l’utilisateur ‘mohammad’ et exécute la commande docker hello-world comme ci-dessous.

su - mohammad
docker run hello-world

Et tu obtiendras le hello-world de docker comme indiqué ci-dessous.

Installe Docker-ce

Étape 3 – Créer le cluster Swarm

Dans cette étape, nous allons créer le Swarm Cluster de nos nœuds. Pour créer les nœuds du cluster d’essaimage, nous devons initialiser le mode essaimage sur le nœud ‘manager’, puis joindre le nœud ‘worker01’ au cluster.

Initialise le mode Docker Swarm en exécutant la commande docker ci-dessous sur le nœud ‘manager’.

docker swarm init --advertise-addr 132.92.41.4

Et tu obtiendras le résultat indiqué ci-dessous.

Crée le Cluster Swarm

Tu verras que ‘join-token’ a été généré par le nœud ‘manager’.

Ensuite, nous devons ajouter le nœud ‘worker01’ au cluster ‘manager’. Et pour cela, nous avons besoin d’un ‘join-token’ du nœud ‘manager’ du cluster, alors assure-toi de l’écrire sur ta note.

Exécute la commande docker swarm join sur le nœud ‘worker01’.

docker swarm join --token SWMTKN-1-5p5ujrr67rl2rlmyvrj56fksblbcrtaeirf7fj5r4snid2vn6y-918gbqr02m64xct43i2ssi4qs 132.92.41.4:2377

Tu obtiendras maintenant le résultat illustré ci-dessous.

rejoindre l'essaim de docker

Le nœud ‘worker01’ a été joint au cluster.

Vérifie-le en exécutant la commande suivante sur le nœud ‘manager’.

docker node ls

Tu vois maintenant que le nœud ‘worker01’ a été joint au cluster Swarm.

Le nœud a été joint au cluster de l'essaim

Le Swarm Cluster a été créé.

Étape 4 – Déploiement du premier service sur le cluster

Dans cette étape, nous allons créer et déployer notre premier service sur le cluster Swarm. Nous voulons créer un nouveau service, le serveur Web Nginx, qui fonctionnera sur le port http 80 par défaut, puis l’exposer au port 8080 sur le serveur hôte, et ensuite essayer de répliquer le service nginx à l’intérieur du cluster essaim.

Créer un service

Crée un nouveau service Nginx nommé ‘my-web’ et expose le port HTTP du conteneur au port 8080 de l’hôte.

docker service create --name my-web --publish 8080:80 nginx:1.13-alpine

Et quand il est créé, vérifie en utilisant la commande docker service ci-dessous.

docker service ls

Et tu obtiendras le résultat comme indiqué ci-dessous.

Créer un service

Le service Nginx a été créé et déployé dans le cluster swarm en tant que service nommé ‘my-web’, il est basé sur Nginx Alpine Linux, expose le port HTTP du service du conteneur au port ‘8080’ sur l’hôte, et il n’a que 1 réplique.

Répliques et mise à l’échelle du service

Nous allons maintenant créer des répliques pour le service ‘my-web’. Nous allons créer 2 répliques du service ‘my-web’, afin que le service soit accessible sur les nœuds ‘manager’ et ‘worker01’.

Pour répliquer le service ‘my-web’, exécute la commande suivante.

docker service scale my-web=2

Et une fois que c’est terminé, vérifie à nouveau en utilisant la commande docker service.

docker service ls

Et maintenant, le serveur a 2 répliques.

Répliques et mise à l'échelle du service

Ouvre ton navigateur Web et tape l’adresse IP du nœud manager avec le port 8080.

http://manager:8080/

Et tu obtiendras la page par défaut de Nginx.

Management node

Voici le résultat du nœud ‘worker01’.

http://worker01:8080/

Nœud ouvrier

Le Swarm Cluster a été créé, et le service Nginx a été complètement déployé sur notre Swarm Cluster.

Référence

Vous aimerez aussi...