Introduction, c’est quoi un Cluster Hat ?
Qu’est ce que tu nous as encore trouvé ???
Vous m’avez vu jouer avec des Raspberry Pi et y installer Kubernetes dessus, ou juste simplement Alpine Linux.
Alors de quoi diantre (oui, “diantre” carrément, n’ayons pas peur des mots) s’agit-il aujourd’hui ???
En cherchant dans les tréfonds des Internets s’il était possible d’installer un cluster Kubernetes sur des Raspberry Pi zero, je suis tombé sur 3 personnes différentes qui avaient échoué dans cette tâche :
- Setting up a Kubernetes cluster using Raspberry Pi Zero 2 W’s et l’article reddit associé avec une photo (importante pour la suite de l’article)
- github.com/abelperezok/kubernetes-raspberry-pi-cluster-hat
- A tiny cluster based on 4x Raspberry Pi Zero 2 W
Dans les 3 cas, les gens ont tous essayé d’installer un cluster de RPi zero, plantés sur une sorte de carte additionnelle dont j’ignorais l’existence : le Cluster HAT

The Cluster HAT (Hardware Attached on Top) which interfaces a (Controller) Raspberry Pi A+/B+/2/3 with 4 Raspberry Pi Zeros configured to use USB Gadget mode is an ideal tool for teaching, testing or simulating small scale clusters.
The Cluster HAT can be used with any mix of Pi Zero 1.2, Pi Zero 1.3 and Pi Zero W.
- USB Gadget Mode: Ethernet and Serial Console.
- Onboard 4 port USB 2.0 hub.
- Raspberry Pi Zeros powered via Controller Pi GPIO (USB optional).
- Individual Raspberry Pi Zero power controlled via Controller Pi GPIO (I2C).
- Connector for Controller Serial Console (FTDI Basic).
- Controller Pi can be rebooted without interrupting power to Pi Zeros, network recovers on boot.
Problème(s)
Bon, forcément, c’est absurde, c’est donc un énième projet pour moi !!
Premier problème : le Cluster HAT ne peut en théorie pas supporter les Pi Zero 2W. C’est en tout cas ce qu’on lit partout (sur les sites des revendeurs, et ce qu’on peut déduire de l’introduction que j’ai mise juste au dessus). Et c’est super dommage parce que c’est le modèle que j’ai (j’en ai deux) et j’ai un peu la flemme d’en acheter 4 en version 1.3 juste pour être sûr que ça fonctionne.
Heureusement :
- Plusieurs commentaires trouvés sur le net indiquent qu’en réalité, ça fonctionne si l’alim (27w pour l’officielle) du Pi 5 était suffisamment puissante ; de plus, la FAQ dit qu’en fait, c’est bon
- Quentin m’en a gentiment passé 2 Pi Zero 1.3, ce qui complète ma collection. J’en aurais 2 de chaque, ça devrait le faire niveau alim.
Deuxième problème, en trouver un (Cluster HAT) ! La dernière version de ce produit a été produite il y a plusieurs années déjà. Le site officiel ne livre pas en France, le produit n’existe plus sur Kubii.fr. J’en ai trouvé encore quelques uns sur The Pi Hut (au Royaume-Uni et il n’y en a plus aujourd’hui), pour une quarantaine d’euros, livraison incluse.
Dernier point, il a fallu trouver un Pi 5 à un prix raisonnable et ça fait mal d’avoir de lâcher 70€ pour un Pi 5 d’occasion avec seulement 4 Go.
On en est donc, avec les accessoires (cartes SDs) et les différentes cartes à un side project à peu près 200€.
Ça fait un peu cher pour un projet absurde, mais je finance ça avec un article (sur un autre sujet) qui va sortir dans un magazine dans quelques semaines. Ceux qui savent, savent ;-P.
Installation matérielle
Probablement la partie la plus rigolote quand on aime (comme moi) bidouiller des composants informatiques et des cartes électroniques.
- Mettez les petites vis pour surélever le “Hat”
- Insérez le Cluster HAT sur les ports GPIO du Raspberry Pi 5
- Insérez les 4 Pi Zero dans les ports USB du HAT
Alimentation : Utilisez impérativement une alimentation suffisamment puissante, idéalement l’alimentation officielle du Pi 5 (27W USB-C). Le Cluster HAT tire son énergie du Pi 5 pour alimenter les 4 Zéros.
Cartes SD : Il vous faut 5 cartes MicroSD au total (1 pour le Pi 5, 4 pour les Zéros). Le site parle de booter les pi zero sans carte MicroSDs (fonctionnalité expérimentale). Je regarderai peut être ?

Bon OK, c’était trivial. Mais ça prouve que le produit est bien conçu !
Boîtier 3D
Comme j’ai une imprimante 3D, j’ai modifié un modèle existant pour les RPi avec un “M.2 hat” (une autre carte additionnelle, celle-ci pour connecter un SSD M.2) en faisant des gros TROUS partout pour que les pi zero puissent rentrer.

Je ne peux malheureusement pas partager le profil modifié car c’est contraire à la licence du fichier 3D (Standard Digital File License, qui interdit les modifications).
Note : j’ai passé plus de temps à chercher des modèles, les modifier et tester des prototypes, qu’à jouer avec le cluster hat lui-même.
Préparation de l’installation
La première chose à faire pour commencer à profiter de ce magnifique cluster de Raspberry est de commencer par installer et configurer notre Pi 5.
Même s’il est théoriquement possible de tout faire soi-même, le fabricant du cluster hat conseille de partir sur les images préconfigurées disponibles sur son site 8086.net. La dernière version disponible est téléchargeable ici :
En parcourant la liste, on note qu’il existe :
- 6 versions pour le RPi “maître” (Bookworm lite, normal et full, avec un mode CNAT ou CBRIDGE pour chaque)
- des images préconfigurées Rpi OS lite pour les Pi Zero (appelées Px, x étant la position sur le cluster hat), là aussi avec des variantes CBRIDGE / CNAT, armhf (32 bits) et arm64
Par flemme, j’ai juste branché le Pi 5 sur le courant, je n’ai pas de câble Ethernet à portée de main. Dans ce cas, si comme moi vous connectez votre Pi en WiFi, il faut partir sur le mode CNAT (NATé). Au contraire, le mode CBRIDGE (bridgé, qui nécessite donc le port Ethernet) est que vous verrez sur votre LAN les 5 machines.
Deuxième info (rappel), dans mon cas, j’ai un mix de machines 32 et 64 bits, il faut donc que je fasse attention à bien sélectionner le bon OS pour les bonnes machines.
Installation du Raspberry Pi 5 (notre contrôleur)
Pour le Raspberry Pi 5, dans mon cas le fichier est donc 2025-11-24-2-bookworm-ClusterCTRL-arm64-lite-CNAT.img.xz
wget https://dist1.8086.net/clusterctrl/bookworm/2025-11-24/2025-11-24-2-bookworm-ClusterCTRL-arm64-lite-CNAT.img.xz
Le problème du mode headless
Même si c’est possible, je ne veux pas brancher le Pi à un écran (faut sortir un clavier et un écran… fatiguant) alors je vais tout faire de manière à être en headless. Et manque de bol, les dernières versions du Raspberry Pi Imager (2.0.0) ne permettent pas (plus ?) de faire de customisation des OS tiers.

En théorie, il va donc falloir, une fois l’image flashée sur la microSD, configurer manuellement :
- le WiFi
- un utilisateur de base
- activer SSH
J’ai essayé, ça a échoué, malgré un fichier wpa_supplicant.conf, un userconf.txt correctement formatté et un fichier ssh vide.

La solution : Raspberry Pi Imager 1.9.6
Après avoir pas mal ragé, je suis tout simplement retourné sur la version précédente de l’imager (1.9.6) qui fonctionne très bien avec l’image fournie par 8086.net.
Note : cependant, pour installer les OS RPi OS récents, j’ai eu pas mal d’échecs. Donc à utiliser avec parcimonie.
Installation des 4 Raspberry Pi Zero (Les Nœuds)
Ici, c’est un poil plus simple côté réseau, car en mode CNAT, les Pi Zero vont communiquer via le câble USB du Cluster HAT. MAIS il faut faire attention aux problématiques d’architecture 32 vs 64 bits, dans mon cas un peu hybride :
- P1 (un Pi Zero 2) :
...arm64-lite-CNAT-p1.img.xz - P2 (un Pi Zero 1.3) :
...armhf-lite-CNAT-p2.img.xz - P3 (un Pi Zero 1.3) :
...armhf-lite-CNAT-p3.img.xz - P4 (un Pi Zero 2) :
...arm64-lite-CNAT-p4.img.xz
Niveau customization, on laisse donc SSH et le user/password, mais pas la peine de mettre le WiFi. On pourra d’ailleurs modifier les paramètres de boot pour supprimer côté kernel les modules Bluetooth et WiFi histoire de gagner quelques Mo de RAM.
Démarrage
Une fois que tout est prêt, que le RPi 5 fonctionne, on peut se logger en SSH et exécuter la commande :
sudo clusterctrl on
À partir de là, les LEDs du cluster hat devraient se mettre à s’exciter, et les RPi Zero devraient s’allumer progressivement. Ça fait un peu guirlande de Noël mais j’aime bien.
Si on veut en allumer que certaines, c’est possible avec les commandes :
sudo clusterctrl on p1 # pour n'allumer que p1
sudo clusterctrl off p2 p3 p4 # pour éteindre p2, p3 et p4
Configuration réseau
Dans le mode NAT, les adresses IP des Pi Zero sont affectées de la manière suivante :
- côté RPi 5 (le contrôleur) on a un bridge
br0avec pour adresse172.19.181.254/24 - côté Pi Zero,
172.19.181.xavec x allant de 1 à 4
C’est aussi simple que ça. Depuis le contrôleur, on peut donc tenter de se logger en SSH :

p1 a beau être NATé, le NAT fonctionne puisqu’on a bien accès à Internet :
zwindler@p1:~ $ ping 8.8.8.8
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
64 bytes from 8.8.8.8: icmp_seq=1 ttl=115 time=12.5 ms
64 bytes from 8.8.8.8: icmp_seq=2 ttl=115 time=17.1 ms
Conclusion
J’ai perdu pas mal de temps à flasher les images jusqu’à trouver le bon moyen d’avoir à la fois la ROM custom du cluster HAT et les customizations OS pour tourner en headless.
Mais une fois que j’avais ça, c’était relativement trivial de faire fonctionner ce petit cluster.
Maintenant, il reste à trouver ce que je vais faire tourner dessus ;) j’ouvre les paris !