fix(storage): consolidate longhorn-kafka → unified longhorn StorageClass
Removes duplicate longhorn-kafka StorageClass managed by Kafka chart. All applications now use single 'longhorn' StorageClass (3 replicas, Immediate binding). Changes: - Kafka chart: use 'longhorn' instead of 'longhorn-kafka' - Delete Kafka StorageClass template (no longer needed) - Update longhorn-storageclass.yaml to match deployed config (Immediate, not WaitForFirstConsumer) Existing Kafka PVCs remain bound to old longhorn-kafka StorageClass (safe - no data loss). New PVCs will use unified 'longhorn' StorageClass.
This commit is contained in:
@@ -1,19 +0,0 @@
|
|||||||
{{- if eq .Values.nodePool.storage.class "longhorn-kafka" }}
|
|
||||||
# The default "longhorn" StorageClass requests 3 replicas across 3 zone-labeled
|
|
||||||
# nodes (az-a/az-b/az-c). With Longhorn's zone-aware anti-affinity, replicas
|
|
||||||
# spread 1-per-zone for durability.
|
|
||||||
apiVersion: storage.k8s.io/v1
|
|
||||||
kind: StorageClass
|
|
||||||
metadata:
|
|
||||||
name: longhorn-kafka
|
|
||||||
provisioner: driver.longhorn.io
|
|
||||||
allowVolumeExpansion: true
|
|
||||||
reclaimPolicy: Delete
|
|
||||||
volumeBindingMode: Immediate
|
|
||||||
parameters:
|
|
||||||
numberOfReplicas: "3"
|
|
||||||
staleReplicaTimeout: "30"
|
|
||||||
fromBackup: ""
|
|
||||||
fsType: "ext4"
|
|
||||||
dataLocality: "disabled"
|
|
||||||
{{- end }}
|
|
||||||
@@ -4,7 +4,7 @@ namespace: sqs
|
|||||||
nodePool:
|
nodePool:
|
||||||
replicas: 3
|
replicas: 3
|
||||||
storage:
|
storage:
|
||||||
class: longhorn-kafka
|
class: longhorn
|
||||||
# Longhorn's per-node scheduling budget on the current 2-node cluster has
|
# Longhorn's per-node scheduling budget on the current 2-node cluster has
|
||||||
# only ~36Gi of headroom left (other PVCs already reserve the rest), and
|
# only ~36Gi of headroom left (other PVCs already reserve the rest), and
|
||||||
# each node hosts one replica of all 3 broker volumes -- so 3 * sizeGi
|
# each node hosts one replica of all 3 broker volumes -- so 3 * sizeGi
|
||||||
|
|||||||
@@ -7,8 +7,8 @@ kafkaCluster:
|
|||||||
nodePool:
|
nodePool:
|
||||||
replicas: 3
|
replicas: 3
|
||||||
storage:
|
storage:
|
||||||
# longhorn-kafka now uses numberOfReplicas: 3 across 3 zone-labeled nodes.
|
# Use unified longhorn StorageClass (3 replicas, Immediate binding)
|
||||||
class: longhorn-kafka
|
class: longhorn
|
||||||
# Per-node headroom: with 3 nodes and existing PVCs, estimate ~100+ Gi total
|
# Per-node headroom: with 3 nodes and existing PVCs, estimate ~100+ Gi total
|
||||||
# available. Each node hosts one replica of all 3 broker volumes, so 3 *
|
# available. Each node hosts one replica of all 3 broker volumes, so 3 *
|
||||||
# sizeGi must fit. Monitor usage during Kafka deployment.
|
# sizeGi must fit. Monitor usage during Kafka deployment.
|
||||||
|
|||||||
@@ -10,12 +10,12 @@ metadata:
|
|||||||
provisioner: driver.longhorn.io
|
provisioner: driver.longhorn.io
|
||||||
allowVolumeExpansion: true
|
allowVolumeExpansion: true
|
||||||
reclaimPolicy: Delete
|
reclaimPolicy: Delete
|
||||||
volumeBindingMode: WaitForFirstConsumer # Wait for pod scheduling before binding
|
volumeBindingMode: Immediate # Immediate binding for StatefulSets (matches deployed config)
|
||||||
parameters:
|
parameters:
|
||||||
numberOfReplicas: "3" # HA across all 3 nodes
|
numberOfReplicas: "3" # HA across all 3 nodes
|
||||||
staleReplicaTimeout: "30"
|
staleReplicaTimeout: "30"
|
||||||
fromBackup: ""
|
fromBackup: ""
|
||||||
dataLocality: "best-effort" # Prefer local replica when possible
|
dataLocality: "disabled" # Match deployed config (not best-effort)
|
||||||
fsType: "ext4"
|
fsType: "ext4"
|
||||||
disableRevisionCounter: "true" # Performance optimization
|
disableRevisionCounter: "true" # Performance optimization
|
||||||
unmapMarkSnapChainRemoved: "ignored"
|
unmapMarkSnapChainRemoved: "ignored"
|
||||||
|
|||||||
Reference in New Issue
Block a user