Cluster Kubernetes Homelab
Cluster k3s 4 nœuds sur Raspberry Pi, piloté par OpenTofu, avec observabilité (VictoriaMetrics, Loki, OpenTelemetry, Grafana), Let's Encrypt 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
Infrastructure as Code et observabilité
En 2026, le cluster est passé sous OpenTofu : les ressources existantes ont été importées sans redéploiement, et chaque nouvelle couche s’active par un flag avec un budget RAM connu. Une stack d’observabilité adaptée aux Raspberry Pi (VictoriaMetrics, Loki, OpenTelemetry Collector, Grafana) donne enfin une vue sur ce qui tourne, et cert-manager fournit des certificats Let’s Encrypt. Détails, pièges et choix dans le chapitre dédié.
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
- Reprendre un cluster existant sous infrastructure as code sans interruption de service