Installation de Swarmpit pour gérer facilement un cluster Docker Swarm

Swarmpit (à ne pas confondre avec Brad Pitt …) est une interface Web légère et relativement intuitive permettant de gérer un cluster Docker Swarm.

L’installation de Swarmpit est relativement simple: on va se connecter sur le manager de notre cluster Docker Swarm et nous allons exécuter la commande ci-dessous:

sudo docker run -it --rm \
--name swarmpit-installer \
--volume /var/run/docker.sock:/var/run/docker.sock \
swarmpit/install:1.9
Installation de Swarmpit

Nous pouvons maintenant nous connecter sur le tableau de bord Swarmpit via l’URL suivante:

http://managercentos8:888
Tableau de bord Swarmpit

Déploiement d’un service

Nous allons déployer un service tout simple qui va nous permettre de vérifier que notre Swarm fonctionne correctement.

Dans le menu « Services », nous allons donc cliquer sur « New service »:

Création d’un premier service

Ensuite, nous allons rechercher l’image « topmonks/docker-napp » dans le « repository » public:

Installation service docker-napp

Sur la page suivante, nous allons définir quelle version de l’image utiliser. La dernière version semble la plus indiquer. Nous allons donc choisir « latest ».

Pour le nom du service, vous avez la possibilité de ne pas le renseigner et un nom aléatoire sera attribué au service. Pour ma part, je préfère le renseigner avec un nom intelligible.

Nous allons ensuite choisir le mode de déploiement:
– « global »: un service va être mis en place sur chaque noeud du cluster
– « replicated » : permet d’obtenir plusieurs instances d’un même service sur un même noeud

Configuration du service docker-napp

L’étape suivante va consister à définir les paramètres réseau de notre service: nous allons exporter le port 8080 de notre container au travers du port 9001:

Configuration réseau pour le service docker-napp

On peut ensuite configurer divers éléments très importants mais qui ne sont d’aucun intérêt pour ce container:
– des variables d’environnement
– des points de montage
– des configurations
– des secrets

Configuration des variables et des points de montage pour le service docker-napp

Nous allons ensuite définir les ressources processeur et mémoire nécessaires à l’exécution du service. Dans notre cas, nous allons tout laisser par défaut:

Définition des ressources pour le service docker-napp

La page suivante va nous permettre d’ajouter des « labels » à notre service et surtout de définir la stratégie de déploiement.

Dans mon cas, j’ai choisir de déployer le service uniquement sur des noeuds de type « worker ». Cela se traduit donc par la contrainte : « node.role == worker ».

Définition de l’emplacement du service docker-napp

Enfin, nous allons définir la méthode de log du service en laissant les paramètres par défaut:

Définition de la log du service docker-napp

Le service va alors se déployer sur les 2 noeuds.

Nous allons maintenant tester la distribution des requêtes au sein de notre cluster en appelant plusieurs fois le service (192.168.0.105 est l’adresse IP du manager :

curl http://192.168.0.105:9001

On voit bien ci-dessous que les appels du service sont traités indifféremment par les 2 noeuds du cluster. Well done!

Test de l’équilibrage de charge