
🌐 Aussi en: English · Deutsch · Español
Si vous faites tourner un petit homelab Kubernetes et que vous voulez du stockage persistant redondant, Longhorn est un excellent choix. 🚀
Longhorn est un système de stockage en mode bloc distribué, léger et cloud-native, conçu pour Kubernetes. Il permet de créer des volumes hautement disponibles, de répliquer les données sur plusieurs nœuds et de gérer des volumes persistants sans dépendre d’une baie de stockage externe. Pour un homelab ou un cluster en périphérie (edge), c’est parfait : tout tourne à l’intérieur de Kubernetes et se gère facilement via une interface web.
Avant de commencer, j’ai créé sur chaque serveur Proxmox une petite VM supplémentaire avec 50 Go de disque, dédiée aux volumes Longhorn. J’ai ensuite lancé mon playbook Ansible pour configurer ces trois VM comme nœuds workers Kubernetes. 💻
Dans mon installation, je voulais un stockage redondant et fiable pour de petites charges de travail et des environnements de test, sans pour autant saturer les disques limités de mes VM. La solution idéale serait de rattacher le stockage Longhorn aux workers via une partition supplémentaire dédiée. Comme je ne fais tourner que de petites applications de test comme WordPress ou Nextcloud et que je n’ai pas besoin d’une fiabilité de niveau production, j’ai décidé d’utiliser la partition racine pour Longhorn, en surveillant de près l’occupation du disque dans l’interface de Longhorn pour ne pas dépasser l’espace disponible. 🎯
1. Installer Helm
Si Helm n’est pas encore installé sur votre système, vous pouvez l’installer via Bash et curl :
curl -fsSL -o get_helm.sh https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3
chmod 700 get_helm.sh
./get_helm.sh
helm version2. Ajouter le dépôt Helm de Longhorn
Ajoutez le dépôt Helm officiel de Longhorn :
helm repo add longhorn https://charts.longhorn.io
helm repo updateVous pourrez ainsi récupérer et installer facilement les charts Longhorn.
3. Étiqueter les nœuds workers
Avant l’installation, posez un label sur les nœuds workers pour que Longhorn ne soit déployé que sur eux :
kubectl label node vm16 longhorn=true
kubectl label node vm26 longhorn=true
kubectl label node vm36 longhorn=true4. Préparer le chart Helm en local
Pour personnaliser l’installation, téléchargez le chart en local :
helm fetch longhorn/longhorn --untar
cd longhornVous pouvez ainsi modifier le values.yaml avant le déploiement.
5. Adapter le values.yaml
Modifications importantes dans values.yaml :
- Namespace :
longhorn-system– isole les ressources de Longhorn. - ReplicaCount : 2 – assure la redondance des moteurs (engines) Longhorn.
- Chemin de stockage :
/var/lib/longhorn– la partition racine est utilisée pour les tests ; en production, un disque dédié est recommandé. - NodeSelector :
longhorn=true– garantit que les pods ne sont planifiés que sur les nœuds étiquetés. - UI NodePort : laissé par défaut – pour l’accès depuis le homelab.
6. Créer le namespace
kubectl create namespace longhorn-system7. Installer Longhorn avec Helm
helm install longhorn ./longhorn --namespace longhorn-system -f values.yamlHelm déploie Longhorn avec les paramètres de votre values.yaml personnalisé.

8. Vérifier le NodePort de l’interface
kubectl get svc -n longhorn-systemAccédez à l’interface depuis n’importe quel nœud worker :
http://<worker-node-ip>:309649. Gérer les limites de disque
Comme mes VM n’ont pas de disques supplémentaires, j’ai limité le stockage Longhorn à une partie du système de fichiers racine via l’interface de Longhorn. Cela évite de remplir le disque par accident. En production, utilisez un disque ou une partition dédiés aux volumes Longhorn.
10. Mettre à jour / modifier les valeurs
helm upgrade longhorn ./longhorn --namespace longhorn-system -f values.yamlAjoutez --install si la release n’existe peut-être pas encore. Helm installera ou mettra alors à jour sans risque.
✅ Résultat
- Longhorn tourne dans son propre namespace
longhorn-system - L’interface est accessible via NodePort
- Le chemin de stockage et les limites de disque sont respectés
- Les composants ne tournent que sur les nœuds étiquetés
- Mises à jour et changements de valeurs sans réinstallation
Cette configuration est idéale pour un petit homelab : des volumes persistants hautement disponibles dans Kubernetes, une interface conviviale et un contrôle total sur l’utilisation du stockage. 🎉
Et enfin, dans mon prochain article WordPress, j’installerai une petite application de test dans laquelle je vais exploiter Longhorn avec des PersistentVolumeClaims (PVC), pour montrer comment les applications peuvent utiliser directement les volumes gérés par Longhorn comme stockage persistant. 🖖






