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.
26 lines
880 B
YAML
26 lines
880 B
YAML
clusterName: kmsvc
|
|
namespace: sqs
|
|
|
|
nodePool:
|
|
replicas: 3
|
|
storage:
|
|
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"
|
|
heapOpts: "-Xms2g -Xmx2g"
|
|
# design.md §7: 2 of 3 pods land on talos-cp-1 today; a 3rd physical node
|
|
# is planned later. Anti-affinity keeps the scheduler spreading pods as
|
|
# evenly as the current node count allows, and will auto-rebalance once
|
|
# the new node joins — no replica/quorum change needed at that point.
|
|
antiAffinityTopologyKey: kubernetes.io/hostname
|
|
|
|
kafka:
|
|
replicationFactor: 3
|
|
minInsyncReplicas: 2
|