👋 Présentation du projet Cluster RPI
C'est mon projet !
Voilà bien longtemps que je tournais autour de ce projet que j'arrêtais aussitôt démarré. Ce projet a commencé fin 2017 (7 ans déjà!). Je m'étais équipé et j'avais commencé avec un article dans Linux Magazine n°204 expliquant comment déployer Kubernetes sur des Raspberry Pi 3. J'avais passé une journée environ dessus, puis... puis c'est tout en fait.
Je l'ai utilisé ensuite pour quelques bidouilles mais rien de vraiment concret. En même temps, je fais tourner essentiellement mes applications dans des VM ou conteneurs LXC sur Proxmox VE. D'ailleurs dans certaines VM je fais tourner quelques conteneurs Docker.
Il y a quelques mois j'ai rencontré dans le coin des gars comme moi, des techos fan de GNU/Linux et du logiciel libre. Avec un des gars en particulier, on s'est dit que ça serait fun de proposer des services en ligne façon CHATONS. Ce fut la motivation qui m'a permis de ressusciter ce projet et de dépoussiérer mon cluster RPI.
Matériel
Voici la liste de matériel utilisé :
- Boitier pour "racker" les RPI https://www.amazon.fr/gp/product/B01HH2RILM (plus proposé à la vente) --> À voir https://www.amazon.fr/GeeekPi-6-Couches-Raspberry-Dissipateur-Transparent/dp/B08614TZ7Q/
- Raspberry Pi 4 x1
- Raspberry Pi 3 x4
- Raspberry Pi Model B v1.2
- SanDisk Ultra 32 GB microSDHC Memory Card x4 https://www.amazon.fr/gp/product/B073JWXGNT
- Anker Chargeur Secteur USB PowerPort 6 Ports 60W x1 https://www.amazon.fr/gp/product/B00PTLSH9G/
- Câble USB/Micro 30 cm USB x4 https://www.amazon.fr/gp/product/B016BEVNK4 (ne sont plus proposés à la vente) --> À voir https://www.amazon.fr/SUNGUY-Synchronisation-Chargeur-Android-Samsung/dp/B07G934SJ9/
- Switch TP-Link 5 ports https://www.amazon.fr/gp/product/B00A128S24/
- PC NiPoGi Serveur Proxmox VE faisant tourner une VM serveur NFS, une VM OpnSense et un conteneur HAProxy https://www.amazon.fr/gp/product/B0BY25NQGP/ mais un vieux NUC avec 8 Go de RAM fera parfaitement l'affaire.
Voilà ce que ça donne (j'ai ajouté le RPI Model B v1.2 et le RPI 4 après avoir pris la photo):
Contraintes
Voici une petite liste de contraintes que je me suis imposées ou qui se sont imposées à moi:
- Basse consommation électrique.
- Favoriser le matériel de récupération.
- Intégrer le cluster Pi dans l'environnement existant.
- Accessible depuis l'extérieur.
- Que du libre. Facile mais en y réfléchissant bien, je suis obligé de faire une petite concession avec les RPI dont le matériel n'est pas libre.
- Respect de l'état de l'art de la sécurité (firewall, IDS/IPS, backup...).
- Observabilité avec à minima du monitoring.
Infrastructure
Bon mon infra existante n'est pas parfaite et je dois l'avouer, j'ai empilé sans trop réfléchir et anticiper. D'ailleurs, cela fera parti d'un autre projet. Au final le schéma de principe donne ça :
Cela m'a permis d'intégrer cette nouvelle infra sans modifier l'existante puisque je n'ai fait que modifier la configuration des serveurs déjà présents (le VPS, HAProxy et OPNSense).
Je passe par un VPS façon de ne pas exposer mon IP publique personnelle. J'ai fait un redirection des ports 80 et 443 vers l'IP virtuelle (renseignée dans Wireguard) de mon HAProxy qui est dans une DMZ. Ce dernier route les requêtes HTTP/S (routage SNI) vers les IP des RPI (vers Traefik pour être plus précis).
Les RPI et le serveur NFS sont dans une deuxième DMZ.
Je détaillerai tout cela dans les prochaines publications.
En termes de consommation électrique, je suis passé d'environ 73 Watts (Box internet, cluster PVE avec des NUC,...) à 89 Watts soit environ 2.80€ de plus par mois (merci à la privatisation de l'électricité).