Préparation de docker swarm
Pré-requis à l’installation
Configuration hardware
La configuration doit être définie en fonction de l’utilisation envisagée du progiciel. En effet, si les pipelines de traitement nécessitent beaucoup de calculs, alors il faudra augmenter le nombre de CPU en conséquence. Si les volumes de données sont importants, il sera nécessaire d’augmenter la mémoire et l’espace disque en conséquence.
Type de configuration | Mémoire | CPU | Disque |
---|---|---|---|
Minimale |
8Go |
4 Coeurs |
50Go |
Standard |
16Go |
8 à 16 coeurs |
200Go |
Intensif |
32Go |
16 à 32 coeurs |
1To |
Dans le cadre de la mise en œuvre sur plusieurs machines, celles-ci doivent être reliées via un réseau GigaBit Ethernet, afin de garantir des performances optimales.
Configuration des machines
-
Les machines peuvent être physiques, virtuelles ou sur le cloud
-
Les machines doivent communiquer entre elles via le réseau, utiliser un adressage IP fixes
-
L’adresse IP doit être attribuée à une interface réseau disponible pour le système d’exploitation hôte
-
Ouvrir les ports suivants entre les machines (pour docker) :
-
TCP port 2377 pour les communications managériales (cluster management)
-
TCP and UDP port 7946 pour les communications entre les nœuds
-
UDP port 4789 pour le trafic du réseau docker overlay
-
-
Autoriser le protocole IP 50 (ESP) pour le cryptage du réseau overlay
Pré-requis système et logiciels
Le système d’exploitation utilisé dans le cadre de ce document est Ubuntu 22 LTS. L’application est validée sur des environnements Debian/ubuntu, et est fonctionnelle sur tout système Linux récent, avec les pré-requis installés.
Nous conseillons, en tant que bonne pratique Linux, de distinguer les volumes de données systèmes, docker (le répertoire /var/lib/docker peut devenir très gros), et répertoires de datachain.
Pré-requis | Version | Commentaire et Installation |
---|---|---|
Docker |
20 minimum (Version actuelle 23.0.0) |
Cluster Swarm
Cette partie décrit succinctement la procédure de mise en oeuvre d’un cluster Swarm multi nœud.
A noter que cette procédure est aussi valable pour une mise en place d’un cluster avec un seul nœud.
Création du cluster
Initialisation du cluster
Cette commande permet d’initier le cluster et de créer le premier nœud manager.
A exécuter une seule fois uniquement sur le host manager
$ docker swarm init [--advertise-addr <MANAGER-IP>]
Exemple :
$ docker swarm init --advertise-addr 192.168.99.100
Swarm initialized: current node (dxn1zf6l61qsb1josjja83ngz) is now a
manager.
To add a worker to this swarm, run the following command:
docker swarm join \
--token SWMTKN-1-49nj1cmql0jkz5s954yi3oex3nedyz0fb0xx14ie39trti4wxv-8vxv8rssmk743ojnwacrr2e7c \
192.168.99.100:2377
To add a manager to this swarm, run 'docker swarm join-token manager'
and follow the instructions.
Vous pouvez tester la bonne instanciation du cluster :
$ docker info
Containers: 2
Running: 0
Paused: 0
Stopped: 2
...snip...
Swarm: active
NodeID: dxn1zf6l61qsb1josjja83ngz
Is Manager: *true*
Managers: 1
Nodes: 1
...snip...
On constate ici que le mode Swarm est bien activé sur le host manager et que le cluster est prêt à être utilisé.
Pour le mode seul nœud la procédure s’arrête ici. Pour procéder à l’ajout des nœuds supplémentaires cf § suivant
Ajouter des nœuds au cluster Swarm
A exécuter sur chacune des machines qu’on souhaite ajouter comme nœud
$ docker swarm join --token <MANAGER-TOKEN> <MANAGER-IP>:2377
Exemple :
$ docker swarm join \
--token
SWMTKN-1-49nj1cmql0jkz5s954yi3oex3nedyz0fb0xx14ie39trti4wxv-8vxv8rssmk743ojnwacrr2e7c \
192.168.99.100:2377
This node joined a swarm as a worker.
Pour récupérer le token à nouveau depuis le manager :
$ docker swarm join-token worker
Vous pouvez tester l’ajout du nœud en executant la commande suivante sur le manager - plusieurs nœud sont désormais référencés :
$ docker node ls
Installation de Datachain
Ce chapitre présente les images de la solution DataChain ©, ainsi leur paramétrage.
Prérequis
Des ressources suffisantes comme indiqué au chapitre Prérequis pour faire tourner les dockers.
Une clé de déploiement valide pour se logger au registre docker Adobis, afin de récupérer les images docker DataChain ©.
Déploiement
Le déploiement de l’application se fait au moyen d’un fichier docker-compose, qui va permettre de configurer les modules à déployer, ainsi que leur paramétrage.
Nous fournissons dans les chapitres suivants des exemples de déploiement, permettant ainsi de déployer la solution dans la configuration la mieux adaptée à vos besoins.