43 lines
1.9 KiB
YAML
43 lines
1.9 KiB
YAML
# Prérequis (à faire une seule fois, hors de ce manifeste — même logique que
|
|
# deploy/cert-manager/, un composant partagé du cluster, pas par démo) :
|
|
#
|
|
# 1. Sur CHAQUE nœud du cluster (y compris les workers ARM64 Raspberry Pi —
|
|
# Longhorn supporte officiellement l'ARM64) :
|
|
# apt-get update && apt-get install -y open-iscsi nfs-common
|
|
# systemctl enable --now iscsid
|
|
#
|
|
# 2. Installer Longhorn (v1.12.0, dernière version stable au moment de
|
|
# l'écriture — vérifier https://github.com/longhorn/longhorn/releases
|
|
# avant d'appliquer une version plus récente) :
|
|
# kubectl apply -f https://raw.githubusercontent.com/longhorn/longhorn/v1.12.0/deploy/longhorn.yaml
|
|
#
|
|
# 3. Attendre que tous les pods soient Running avant de déployer une démo :
|
|
# kubectl -n longhorn-system get pods
|
|
#
|
|
# 4. Appliquer ce manifeste :
|
|
# kubectl apply -f deploy/longhorn/storageclass.yml
|
|
#
|
|
# Pourquoi : la StorageClass par défaut du cluster (local-path, fournie par
|
|
# k3s) attache chaque volume au disque LOCAL du nœud où le pod tourne — si ce
|
|
# nœud tombe, le volume devient inaccessible tant qu'il ne redémarre pas,
|
|
# avec un vrai risque de perte de données. Cette StorageClass réplique
|
|
# chaque volume sur 2 nœuds différents (numberOfReplicas) : si le nœud qui
|
|
# héberge le pod tombe, Kubernetes reprogramme le pod ailleurs et Longhorn
|
|
# rattache une réplique déjà à jour, sans interruption ni perte.
|
|
#
|
|
# Utilisée par les PVC postgres/redis/uploads des démos — voir
|
|
# deploy/chart-gestion/{postgresql,redis,backend}/values.yaml
|
|
# (persistence.storageClass / persistence.uploads.storageClass).
|
|
apiVersion: storage.k8s.io/v1
|
|
kind: StorageClass
|
|
metadata:
|
|
name: longhorn-replicated
|
|
provisioner: driver.longhorn.io
|
|
allowVolumeExpansion: true
|
|
reclaimPolicy: Delete
|
|
volumeBindingMode: Immediate
|
|
parameters:
|
|
numberOfReplicas: "2"
|
|
staleReplicaTimeout: "30"
|
|
fsType: "ext4"
|