fix: pin Kafka broker storage to a 2-replica class sized for current cluster

The default "longhorn" StorageClass requests 3 replicas, but the homelab
cluster currently has only 2 schedulable nodes, so the 3rd replica could
never be scheduled and volumes stayed permanently degraded. Adds
longhorn-kafka (numberOfReplicas: 2) and reduces broker PVC size so 3 broker
volumes' replicas fit within each node's remaining Longhorn scheduling
headroom. Revert to "longhorn" once a 3rd node joins.
This commit is contained in:
riotpiaole
2026-06-22 12:23:12 -07:00
parent 3dda969784
commit 173a4935ab
3 changed files with 39 additions and 6 deletions
@@ -0,0 +1,22 @@
{{- if eq .Values.nodePool.storage.class "longhorn-kafka" }}
# The default "longhorn" StorageClass requests 3 replicas, but the homelab
# cluster currently has only 2 schedulable nodes -- Longhorn places at most
# one replica per node, so the 3rd replica can never be scheduled and the
# volume runs permanently "degraded". This class pins replica count to the
# actual node count. Bump back to "longhorn" (or numberOfReplicas: "3" here)
# once the 3rd node joins.
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: longhorn-kafka
provisioner: driver.longhorn.io
allowVolumeExpansion: true
reclaimPolicy: Delete
volumeBindingMode: Immediate
parameters:
numberOfReplicas: "2"
staleReplicaTimeout: "30"
fromBackup: ""
fsType: "ext4"
dataLocality: "disabled"
{{- end }}
+6 -2
View File
@@ -4,8 +4,12 @@ namespace: sqs
nodePool:
replicas: 3
storage:
class: longhorn
sizeGi: 50
class: longhorn-kafka
# 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
# each node hosts one replica of all 3 broker volumes -- so 3 * sizeGi
# must fit in that headroom. Revisit once the 3rd node joins.
sizeGi: 10
resources:
memory: 5Gi
cpu: "2"