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)

https://docs.docker.com/engine/install/

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.