feat(storage): enable Longhorn on all 3 control-plane nodes for true HA
Changes: - k8s/infrastructure/longhorn/longhorn-taint-toleration.yaml: new Setting to tolerate node-role.kubernetes.io/control-plane:NoSchedule taint, allowing Longhorn DaemonSet to run on cp-2/cp-3 (not just cp-1) - k8s/infrastructure/longhorn/longhorn-nodes.yaml: explicit Node CRDs for talos-cp-2 and talos-cp-3 (auto-discovery doesn't work when nodes have taints; these define /var/lib/longhorn as the storage path) - k8s/infrastructure/longhorn/longhorn-wffc-storageclass.yaml: bump numberOfReplicas from 1→3 (true HA: each volume gets 3 copies across 3 nodes; if one node fails, 2 others still have the data) - k8s/infrastructure/longhorn/kustomization.yaml: add new resources Root cause: Longhorn was only running on talos-cp-1 (.213) because cp-2/cp-3 have the control-plane taint and Longhorn DaemonSet had no matching toleration. Every workload with a PVC was forced to schedule on cp-1 (via nodeSelector or implicit co-location with the storage), defeating the entire purpose of a 3-node HA cluster. With this fix: - Longhorn manager runs on all 3 nodes - Storage is replicated 3x (erasure-coded across nodes) - Pods can schedule on any node without PVC attachment failures - True HA: lose 1 node, cluster still serves all volumes
This commit is contained in:
@@ -3,6 +3,10 @@ kind: Kustomization
|
||||
namespace: longhorn-system
|
||||
resources:
|
||||
- longhorn-wffc-storageclass.yaml
|
||||
# Longhorn deployed via Helm chart (values in parent layer). The WFFC
|
||||
# StorageClass above is the new default; the chart's Immediate `longhorn` SC is
|
||||
# demoted (default-class annotation removed on the live object at bootstrap).
|
||||
- longhorn-servicemonitor.yaml
|
||||
- longhorn-taint-toleration.yaml
|
||||
- longhorn-nodes.yaml
|
||||
# Longhorn deployed via bootstrap script (cluster-config/longhorn_bootstrap.sh).
|
||||
# These manifests configure it post-bootstrap: WFFC StorageClass (default),
|
||||
# Prometheus ServiceMonitor, taint toleration for control-plane nodes, and
|
||||
# explicit Node CRDs for cp-2/cp-3 (auto-discovery doesn't work with taints).
|
||||
|
||||
Reference in New Issue
Block a user