Créer un cluster de Raspberry Pi avec Docker Swarm
Il y a quelques temps la Fondation Raspberry Pi a annoncé la compatibilité de Docker sur la Raspberry Pi. Ainsi il est maintenant plus facile de mettre en place et d’utiliser Docker sur la Raspberry. Aujourd’hui nous allons vous expliquer comment installer Docker Swarm, un mode de Docker permettant de réaliser un cluster (mise en relation de plusieurs Rsapberry) très facilement.
Vous ne connaissez pas Docker ? Ce n’est pas grave, Frank a réalisé pour vous un article détaillé sur le sujet.
Pour exploiter ce tutoriel, vous aurez besoin de minimum deux Raspberry Pi, de leurs câbles d’alimentation, ainsi que de carte microSD (8Go est suffisant).
Installer Docker sur la Raspberry Pi
Pour installer Docker sur la Raspberry Pi, il n’y a rien de compliqué . En effet, il vous suffit simplement de vous connecter sur la Pi en SSH et de taper la commande suivante :
curl -sSL https://get.docker.com | sh
Vous pouvez dès à présent créer vos containers ou télécharger les containers de la communauté, via la plateforme DockerHub. Attention néanmoins à utiliser des containers ARM, sinon Docker ne sera pas capable de les lancer.
Mise en place du cluster de Raspberry Pi avec Docker Swarm
Avec l’arrivée officielle de docker sur la Raspberry pi, nous pouvons profiter de Docker Swarm qui permet de créer un cluster (création d’un ensemble de machines) afin de gérer plusieurs machines comme une seule ressource. Ainsi avec un cluster de 4 Raspberry Pi et Docker Swarm, les containers seront répartis automatiquement afin d’obtenir un système stable.
Docker Swarm fonctionne avec un manager et des worker, ces derniers sont comme vous l’avez compris sous les ordres du manager. Nous allons donc devoir assigner les rôles à nos Raspberry Pi.
Ici, nous avons fait le test avec deux Raspberry Pi sous Raspbian Jessie :
l’une portant le nom (host) « raspManager » et l’ip 192.168.1.100 et la seconde nommée « raspWorker01 » avec l’ip 192.168.1.101.
Ajout des Pi au cluster
Tout d’abord, nous commençons par initialiser le cluster, pour cela nous exécutons la commande docker swarm init sur la Raspberry Pi Manager.
Une fois la commande lancée, le terminal vous enverra les instructions pour ajouter des workers à votre cluster.
pi@raspManager:~ $ sudo docker swarm init Swarm initialized: current node (4c13twqzewrqkuraxybajr973) is now a manager. To add a worker to this swarm, run the following command: docker swarm join \ --token SWMTKN-1-0fomfa1ogeibc67p3fdxn4ea17g8jsvbtip52qptky3h7w5th4-8efjokb38uhtdqgvg3idf874l \ 192.168.1.100:2377 To add a manager to this swarm, run 'docker swarm join-token manager' and follow the instructions.
Comme vous pouvez le constater, Swarm vient d’être initialisé. Pour ajouter vos Raspberry Pi au cluster Docker, nous avons juste à nous connecter à la seconde Pi (raspWorker01) en SSH puis à coller la commander qui nous a été donnée, ici docker swarm join –token SWMTKN-1-0fomfa1ogeibc67p3fdxn4ea17g8jsvbtip52qptky3h7w5th4-8efjokb38uhtdqgvg3idf874l 192.168.1.100:2377
pi@raspWorker01:~ $ sudo docker swarm join --token SWMTKN-1-0fomfa1ogeibc67p3fdxn4ea17g8jsvbtip52qptky3h7w5th4-8efjokb38uhtdqgvg3idf874l 192.168.1.100:2377
Attention le token que donne le manager n’est jamais le même, veillez à bien copier la commande donnée par votre Raspberry Manager.
Après avoir validé la commande sur le worker, le terminal vous informera de la réussite de l’ajout.
This node joined a swarm as a worker.
Vous pouvez à tout moment vérifier le statut du cluster avec la commande docker node ls, cette commande se lance sur la machine Manager.
pi@raspManager:~ $ sudo docker node ls ID HOSTNAME STATUS AVAILABILITY MANAGER STATUS 4c13twqzewrqkuraxybajr973 * raspManager Ready Active Leader a7demo2k14obqp66gbxfsm7 raspWorker01 Ready Active
Vous pouvez maintenant mettre en place vos containers sur votre cluster de Raspberry Pi.
Aussi nous vous recommandons d’opter pour des containers sous Alpine Linux ce qui à l’avantage d’être très léger !
Super tutoriel merci. Docker est une technologie vraiment intéressante et pouvoir faire un cluster de Raspberry ouvre des possibilités incroyables.
Merci !