Vous êtes ici:

Menu

Construire un Cluster RaspBerry

rpi_logo
Cela me démangeait depuis un certain temps, construire un petit cluster à base de Raspberry. Depuis, sont apparus les Raspberry Pi 4, avec des RAM non négligeables 1, 2 et 4Go. On parle de plus en plus de containers et le petit nouveau Kubernetes dans la littérature informatique, lors de mes déplacements professionnels et sur les réseaux sociaux. Cela devenait une évidence, je devais décortiquer le sujet pour ma culture personnelle et pour l’intégration d’une supervision. Le déclencheur sera les super tutos de Xavier que vous trouverez sur son blog personnel.
Il y a quelque temps, j’avais effleuré le sujet avec le clusterhat mais vu la faible puissance du système et le peu d’expérience, je n’avais pas été très loin.

Installation hardware


Maintenant, il est temps de vous présenter mon projet. Il s’agit d’un cluster de quatre Raspberry PI 4 de 2 Go. J’ai rajouté mon clusterhat équipé d’un Raspberry Pi 3 et de 4 Pi Zéro, autant les mettre que de les laisser dans un tiroir. Tout ce petit monde est raccordé à un switch giga manageable (supervision oblige).
J’ai suivi les conseils de Xavier pour le châssis et les câbles réseaux. J’ai trouvé des dissipateurs PI 4 sur Amazon.

dissipateur

Par contre, vu la consommation des PI 4, j’ai préféré les alimentations officielles. Premier problème, l’encombrement de ces alimentations, il vous faudra une grande rallonge ou plusieurs comme moi…
prises
Tous ces fils, cela me rappelle la grande époque des mini-ordinateurs des années quatre-vingt avec leurs extensions !
Pour l’installation des Raspberry, j’ai utilisé l’astuce de Xavier à savoir coller les rondelles en plastiques sur chaque plaque.

plaque-cluster

Utilisez une clé à pipe miniature pour fixer les écrous surtout pour ceux proches des prises Ethernet et USB. Bref, l’installation mécanique ne pose pas de souci.

Installation software


Puis viens la mise en service des Raspberry. Comme indiqué sur les vidéos de Xavier, je me suis mis en quête des images Stretch pour les Pi 4. L’installation des images ne pose pas de problème avec un ordinateur équipé d’Ubuntu. Il suffit de double-cliquer sur l’image, la carte SDRAM étant préalablement montée, le programme propose l’installation de l’image, il suffit de choisir la SDRAM.

copie-image

Deuxième problème, impossible de monter la partition rootfs, une fois l’image copiée. Après plusieurs essais, une évidence, les cartes achetées chez Kubii ne fonctionnent pas avec Linux ! Je n’ai plus qu’a les remplacer. Heureusement, il me restait un stock de carte.
Comme je n’ai pas d’écran pour chaque Pi 4, je fais donc la préparation de mes cartes pour une installation sans écran.
Les exemples sont donnés pour une distribution Ubuntu 18.04
1 autoriser la connexion ssh, créez un fichier ssh vide dans la partition boot

touch /media/`echo $USER`/boot/ssh

2 Ajouter une adresse IP statique, modifiez le fichier dhcpcd.conf dans la partition rootfs
vim /media/`echo $USER`/rootfs/etc/dhcpcd.conf

Décommentez et modifiez les lignes suivantes en fonction de votre configuration.
# Example static IP configuration:
interface eth0
static ip_address=192.168.1.220/24
static routers=192.168.1.1
static domain_name_servers=192.168.1.1 8.8.8.8

On affectera les adresses 220 à 223.
Modifiez aussi les noms d'hôtes des machines en modifiant les fichiers hostname et hosts. Voici les noms de mon cluster :
kmaster 192.168.1.220
node1 192.168.1.221
node2 192.168.1.222
node3 192.168.1.223
clusterhat 192.168.1.224
p1 192.168.1.225
p2 192.168.1.226
p3 192.168.1.227
p4 192.168.1.228

Premier test et… rien, nada ! Pas d’IP présente sur le réseau. Troisième problème : j’avais pensé à acheter un câble spécifique pour les Raspberry PI 4 mais c’est sans compter sur mon matériel préhistorique avec des prises VGA et DVI. Je me retrouve à vouloir connecter mon écran avec d’un côté un câble DVI-HDMI mâle et de l’autre un câble Micro HDMI-HDMI mâle !

cable01

c’est malin ! la galère pour trouver l’adaptateur pour connecter mon écran, enfin au bout de 3 ou 4 magasins, j’ai trouvé l’adapteur DVI-HDMI femelle Happy Avec les deux câbles ci-dessous, je pourrais me connecter aussi bien sur le Pi3 que sur le Pi 4.

cable2

Quatrième problème, tout ça pour m’apercevoir : primo, qu’il faut ajouter une option dans le fichier config.txt pour la configuration HDMI des PI 4 et secondo, que la version Stretch ne fonctionne pas sur le Pi 4 Sad
La configuration spécifique pour le Pi 4 dans le fichier /boot/config.txt

[pi4]
# Enable DRM VC4 V3D driver on top of the dispmanx display stack
dtoverlay=vc4-fkms-v3d
max_framebuffers=2

Du coup, je tente l’installation avec Buster ayant vu un article pour installer Docker pour Raspbian Buster. L’installation des PI 4 ne pose aucun problème avec Buster.

Installation clusterhat


Reste le Pi 3 avec le clusterhat. En surfant sur le site officiel, je m’aperçois d’une mise à jour des images. Le mode bridge m’intéresse car les pi Zéro vont être accessibles sur mon réseau local. J’en profite pour télécharger l’image full.
L’installation ne pose pas trop de problème à part la mise à jour qui ne fonctionne pas en mode graphique. Un apt-get update et upgrade en ligne de commande règle le problème. Reste à installer tout ce petit monde en IP Statique.
Pour le PI 3, voici la modification à réaliser sur le fichier dhcpcd.conf
interface br0
static ip_address=192.168.1.224/24 #ClusterCTRL
static routers=192.168.1.1
static domain_name_servers=192.168.1.1 8.8.8.8
fallback clusterctrl_fallback_br0

Pour les Pi Zéro, préparer les images comme pour les Pi 4. Créez un fichier ssh dans la partition boot. Pour l’adresse IP, modifiez le fichier dhcpcd comme ceci.
interface usb0
static ip_address=192.168.1.225/24 #ClusterCTRL
static routers=192.168.1.1
static domain_name_servers=192.168.1.1 8.8.8.8
fallback clusterctrl_fallback_usb0

On affectera les adresses 225 à 228.
Installer les cartes SDRAM dans les Pi Zéro et lancer la commande suivante à partir du Pi 3

cluster

Vous pourrez vous connecter sur vos Pi Zéro après quelques secondes. Profitez-en pour modifier tous les mots de passe de vos Raspberry, on ne sait jamais Winking
Tout est prêt pour l'installation de docker, la supervision est prête.

monitoring

Voici la fin de ce premier article, le cluster est présent sur le réseau. Nous allons utiliser ansible pour l’installation de ce cluster. Pour cela, je vais m’appuyer sur les conseils de xavier et m’inspirer de son GitLab.


blog comments powered by Disqus
 Vous êtes ici: