Conception et mise en service d’un cluster Raspberry Pi 5


Introduction

Dans le cadre de mes projets personnels et professionnels, j’ai entrepris la conception et le déploiement d’un cluster de Raspberry Pi 5. L’objectif était de créer une infrastructure modulable capable d’héberger plusieurs services, tels que des serveurs de jeux, des bases de données, des services web, ainsi que des outils d’orchestration et d’administration. Ce projet m’a permis de mettre en pratique des compétences en administration système, réseaux, et orchestration de conteneurs.

Conception du cluster

Le cluster est composé de plusieurs Raspberry Pi 5 reliés via un switch réseau. J’ai choisi cette architecture pour assurer :

  • La scalabilité, permettant d’ajouter de nouveaux nœuds selon les besoins.
  • La redondance et la résilience, grâce à un nœud maître capable de gérer la configuration globale et les nœuds workers exécutant les services.
  • Une gestion centralisée, avec des outils d’orchestration comme K3s et le dashboard Kubernetes.

L’infrastructure est divisée en deux types de nœuds :

  1. Master : fournit la gestion du cluster, la synchronisation de l’horloge via Chrony, le DHCP et le DNS, le NAT et la sécurité via iptables/UFW.
  2. Workers : exécutent les applications et services (serveurs Minecraft, bases de données, Node-RED, etc.), synchronisés avec le master et sécurisés de la même manière.

Évolution prévue

Je prévois de faire évoluer le cluster en ajoutant :

  • Un worker Raspberry Pi 5 supplémentaire pour augmenter la capacité de calcul et la résilience.
  • Un VPS externe, qui servira de porte d’entrée au client, permettant un accès sécurisé aux services exposés, tout en isolant le cluster interne du trafic public.
  • Un Stockage supplémentaire dédier au backup du stockage principal.

Mise en œuvre

Configuration réseau et sécurité

Chaque nœud dispose d’une IP fixe configurée via DHCP. Le master assure la distribution du réseau et des services essentiels :

  • DNS et DHCP avec Dnsmasq
  • NAT et firewall avec iptables
  • Synchronisation de l’horloge avec Chrony pour garantir la cohérence des logs et des services.

Les communications entre nœuds se font via SSH sans mot de passe, ce qui facilite la gestion automatisée des tâches et le déploiement de scripts.

Orchestration et gestion des services

Pour l’orchestration, j’ai installé K3s, une distribution légère de Kubernetes adaptée aux environnements embarqués. Les services déployés incluent :

  • Serveurs de jeux (Minecraft, autres)
  • Bases de données SQL (MariaDB)
  • Services web (WordPress, applications Node.js)
  • Gestion centralisée via le dashboard Kubernetes

Le déploiement se fait via des manifests YAML, ce qui permet de reproduire l’infrastructure sur de nouveaux nœuds facilement.

Défis rencontrés et solutions

  • Synchronisation des nœuds : résolue grâce à Chrony et à une configuration NTP robuste.
  • Disponibilité des services : utilisation de volumes persistants et de PVC pour les applications critiques.
  • Sécurité : configuration fine des règles iptables/UFW et limitation des accès SSH.

Résultats

Le cluster est maintenant pleinement fonctionnel, stable et capable d’héberger plusieurs services simultanément. Il offre une infrastructure flexible, modulaire et évolutive, pouvant être utilisée à des fins de test, de développement, ou même de production légère. Grâce à l’évolution prévue, le cluster gagnera en capacité, résilience et accessibilité sécurisée pour les utilisateurs finaux.

Laisser un commentaire

Your email address will not be published. Required fields are marked *.

*
*

CV

Contact

À propos de ce site

Bienvenue sur mon portfolio 
Ce site a été conçu pour présenter mes projets et mes compétences en informatique.

Vous y trouverez notamment :

  • Des projets cloud et DevOps, comme mon cluster Raspberry Pi 5 fonctionnant avec Kubernetes (K3s), incluant l’hébergement de serveurs de jeux, sites web et services automatisés.

  • Des réalisations en développement logiciel, couvrant des applications, scripts et projets interactifs.

  • Des créations en modélisation 3D, avec des illustrations et environnements pour jeux et simulations.

L’objectif de ce site est de mettre en valeur ma polyvalence technique, ma capacité à concevoir et déployer des projets complexes, ainsi que ma passion pour la technologie et l’innovation.