fix(longhorn): enable worker-1 scheduling, 400Gi reserved
32 degraded + 3 faulted volumes from replica rebuild failures. cp-1/cp-2 over-committed; worker-1 had 602Gi free but scheduling disabled. Enable it with 400Gi reserved for LLM weights. - Add worker-1 to longhorn-nodes.yaml (allowScheduling: true) - Add worker-1 disk config to add-disks-job (storageReserved: 400Gi, evictionRequested: false)
This commit is contained in:
@@ -117,6 +117,22 @@ spec:
|
|||||||
echo " ✓ talos-cp-3 already has $CP3_DISKS disks configured"
|
echo " ✓ talos-cp-3 already has $CP3_DISKS disks configured"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# worker-1: enable scheduling, reserve 400Gi for LLM weights,
|
||||||
|
# clear eviction flag that was set when scheduling was disabled.
|
||||||
|
echo "Configuring worker-1 disk..."
|
||||||
|
kubectl -n longhorn-system patch nodes.longhorn.io worker-1 --type merge -p '{
|
||||||
|
"spec": {
|
||||||
|
"disks": {
|
||||||
|
"default-disk-1030400000000": {
|
||||||
|
"allowScheduling": true,
|
||||||
|
"evictionRequested": false,
|
||||||
|
"storageReserved": 429496729600
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}'
|
||||||
|
echo " ✓ worker-1 disk configured (400Gi reserved)"
|
||||||
|
|
||||||
echo
|
echo
|
||||||
echo "Waiting for disks to be ready..."
|
echo "Waiting for disks to be ready..."
|
||||||
sleep 10
|
sleep 10
|
||||||
|
|||||||
@@ -1,33 +1,25 @@
|
|||||||
# Longhorn Node CRDs for cp-2 and cp-3.
|
# Longhorn Node CRDs — enable scheduling on nodes that need explicit opt-in.
|
||||||
# These nodes have the control-plane taint, so Longhorn doesn't auto-discover them.
|
|
||||||
# Explicit Node CRDs + the taint-toleration setting enable storage across all 3 nodes.
|
|
||||||
#
|
#
|
||||||
# `spec.disks` is deliberately absent. Longhorn owns disk identity: it names the
|
# Control-plane nodes (cp-2, cp-3) have taints so Longhorn doesn't auto-discover.
|
||||||
# entry itself (`default-disk-080400000000`, not `default-disk`) and writes
|
# worker-1 was manually disabled; re-enabled 2026-09-28 to relieve degraded-volume
|
||||||
# `storageReserved`, `diskType` and `evictionRequested` into it. Declaring a
|
# pressure (400Gi reserved for LLM weights via the add-disks-job, ~300Gi available
|
||||||
# `default-disk` key here never matched the live one, so the Application sat
|
# for general replica scheduling).
|
||||||
# OutOfSync and selfHeal kept trying to add a SECOND disk record pointing at the
|
|
||||||
# same /var/lib/longhorn path — which is worse than the drift it was fixing.
|
|
||||||
#
|
#
|
||||||
# What these objects are actually for is `allowScheduling: true` on tainted
|
# `spec.disks` deliberately absent — Longhorn owns disk identity and writes
|
||||||
# control-plane nodes. That is all they need to declare.
|
# storageReserved/diskType/evictionRequested itself. Disk-level config lives in
|
||||||
|
# longhorn-add-disks-job.yaml. These objects only set `allowScheduling: true`.
|
||||||
---
|
---
|
||||||
apiVersion: longhorn.io/v1beta2
|
apiVersion: longhorn.io/v1beta2
|
||||||
kind: Node
|
kind: Node
|
||||||
metadata:
|
metadata: { name: talos-cp-2, namespace: longhorn-system }
|
||||||
name: talos-cp-2
|
spec: { name: talos-cp-2, allowScheduling: true, tags: [] }
|
||||||
namespace: longhorn-system
|
|
||||||
spec:
|
|
||||||
name: talos-cp-2
|
|
||||||
allowScheduling: true
|
|
||||||
tags: []
|
|
||||||
---
|
---
|
||||||
apiVersion: longhorn.io/v1beta2
|
apiVersion: longhorn.io/v1beta2
|
||||||
kind: Node
|
kind: Node
|
||||||
metadata:
|
metadata: { name: talos-cp-3, namespace: longhorn-system }
|
||||||
name: talos-cp-3
|
spec: { name: talos-cp-3, allowScheduling: true, tags: [] }
|
||||||
namespace: longhorn-system
|
---
|
||||||
spec:
|
apiVersion: longhorn.io/v1beta2
|
||||||
name: talos-cp-3
|
kind: Node
|
||||||
allowScheduling: true
|
metadata: { name: worker-1, namespace: longhorn-system }
|
||||||
tags: []
|
spec: { name: worker-1, allowScheduling: true, tags: [] }
|
||||||
|
|||||||
Reference in New Issue
Block a user