Cluster Kubernetes Homelab
Cluster k3s 4 nœuds sur Raspberry Pi avec stockage distribué Longhorn, monitoring et services auto-hébergés.
Contexte
J’ai voulu pousser mon homelab au-delà du simple NAS ou du serveur unique. L’objectif : une infrastructure résiliente, reproductible et proche d’un environnement de production réel, mais sur du matériel ARM à faible consommation.
Architecture
Le cluster tourne sur 4 Raspberry Pi 4 (8 Go RAM chacun) reliés en Ethernet gigabit :
- 1 control plane dédié
- 3 nœuds worker avec stockage Longhorn distribué
- Pi-hole pour DNS/DHCP et filtrage réseau
- Traefik comme ingress controller avec certificats TLS automatiques
Services auto-hébergés
- Immich — gestion de photos façon Google Photos
- Gitea — dépôt Git privé
- Docker Registry — registre d’images privé
- Joplin — synchronisation de notes
- Radicale — CalDAV/CardDAV
Gestion de l’alimentation
J’ai construit un onduleur maison (UPS) avec batteries LiPo et contrôleur Arduino pour déclencher un arrêt propre du cluster en cas de coupure secteur. Un script surveille la tension batterie via I2C et envoie les commandes d’arrêt séquencées.
Difficultés rencontrées
La récupération Longhorn après réinstallation a été le défi le plus complexe — il a fallu recréer manuellement les mappings de volumes pour préserver les données existantes sans format propriétaire.
Ce que j’ai appris
- Gestion fine des ressources sur des nœuds ARM contraints
- Debugging réseau profond (CNI, kube-proxy, CoreDNS)
- Stratégies de backup sans verrouillage vendor