From 3402709523953ca60809385048871d4e432bdc7c Mon Sep 17 00:00:00 2001 From: Laur IVAN Date: Tue, 24 Feb 2026 23:55:44 +0100 Subject: [PATCH] fix(rook-ceph): reduce CPU requests for homelab 4-vCPU VMs Default Rook requests (mon=1100m, mgr=700m, CSI sidecars=250-650m) were consuming 17,860m across an 11,850m cluster, causing ESXi CPU overcommit stalls that broke kube-apiserver connectivity and lost leader elections in kube-controller-manager/cilium-operator/openebs. New values target ~2,500m total Rook CPU requests: - mon: 200m (was 1100m) - mgr: 100m (was 700m) - mds: 100m (was ~500m) - osd: 200m (was no request, 8Gi memory limit) - CSI sidecars: 10-50m each (was 100-250m each) --- .../rook-ceph/rook-ceph/app/helmrelease.yaml | 137 ++++++++++++++++++ .../rook-ceph/cluster/helmrelease.yaml | 48 +++++- 2 files changed, 183 insertions(+), 2 deletions(-) diff --git a/kubernetes/apps/rook-ceph/rook-ceph/app/helmrelease.yaml b/kubernetes/apps/rook-ceph/rook-ceph/app/helmrelease.yaml index 8459edc..4127d68 100644 --- a/kubernetes/apps/rook-ceph/rook-ceph/app/helmrelease.yaml +++ b/kubernetes/apps/rook-ceph/rook-ceph/app/helmrelease.yaml @@ -15,6 +15,143 @@ spec: enableLiveness: true serviceMonitor: enabled: true + csiRBDProvisionerResource: | + - name : csi-provisioner + resource: + requests: + memory: 64Mi + cpu: 25m + limits: + memory: 256Mi + - name : csi-resizer + resource: + requests: + memory: 64Mi + cpu: 25m + limits: + memory: 256Mi + - name : csi-attacher + resource: + requests: + memory: 64Mi + cpu: 25m + limits: + memory: 256Mi + - name : csi-snapshotter + resource: + requests: + memory: 64Mi + cpu: 25m + limits: + memory: 256Mi + - name : csi-omap-generator + resource: + requests: + memory: 64Mi + cpu: 25m + limits: + memory: 256Mi + - name : liveness-prometheus + resource: + requests: + memory: 32Mi + cpu: 10m + limits: + memory: 64Mi + - name : csi-rbdplugin + resource: + requests: + memory: 128Mi + cpu: 50m + limits: + memory: 512Mi + csiRBDPluginResource: | + - name : driver-registrar + resource: + requests: + memory: 32Mi + cpu: 10m + limits: + memory: 64Mi + - name : csi-rbdplugin + resource: + requests: + memory: 128Mi + cpu: 50m + limits: + memory: 512Mi + - name : liveness-prometheus + resource: + requests: + memory: 32Mi + cpu: 10m + limits: + memory: 64Mi + csiCephFSProvisionerResource: | + - name : csi-provisioner + resource: + requests: + memory: 64Mi + cpu: 25m + limits: + memory: 256Mi + - name : csi-resizer + resource: + requests: + memory: 64Mi + cpu: 25m + limits: + memory: 256Mi + - name : csi-attacher + resource: + requests: + memory: 64Mi + cpu: 25m + limits: + memory: 256Mi + - name : csi-snapshotter + resource: + requests: + memory: 64Mi + cpu: 25m + limits: + memory: 256Mi + - name : liveness-prometheus + resource: + requests: + memory: 32Mi + cpu: 10m + limits: + memory: 64Mi + - name : csi-cephfsplugin + resource: + requests: + memory: 128Mi + cpu: 50m + limits: + memory: 512Mi + csiCephFSPluginResource: | + - name : driver-registrar + resource: + requests: + memory: 32Mi + cpu: 10m + limits: + memory: 64Mi + - name : csi-cephfsplugin + resource: + requests: + memory: 128Mi + cpu: 50m + limits: + memory: 512Mi + - name : liveness-prometheus + resource: + requests: + memory: 32Mi + cpu: 10m + limits: + memory: 64Mi image: repository: ghcr.io/rook/ceph monitoring: diff --git a/kubernetes/apps/rook-ceph/rook-ceph/cluster/helmrelease.yaml b/kubernetes/apps/rook-ceph/rook-ceph/cluster/helmrelease.yaml index 9a73d2d..9cae8b7 100644 --- a/kubernetes/apps/rook-ceph/rook-ceph/cluster/helmrelease.yaml +++ b/kubernetes/apps/rook-ceph/rook-ceph/cluster/helmrelease.yaml @@ -31,9 +31,53 @@ spec: connections: requireMsgr2: true resources: - osd: + mon: + requests: + cpu: 200m + memory: 256Mi limits: - memory: 8Gi # Required for bootstrap + memory: 1Gi + mgr: + requests: + cpu: 100m + memory: 256Mi + limits: + memory: 1Gi + mds: + requests: + cpu: 100m + memory: 256Mi + limits: + memory: 2Gi + osd: + requests: + cpu: 200m + memory: 256Mi + limits: + memory: 4Gi + prepareosd: + requests: + cpu: 100m + memory: 50Mi + crashcollector: + requests: + cpu: 15m + memory: 60Mi + limits: + memory: 60Mi + exporter: + requests: + cpu: 15m + memory: 50Mi + limits: + cpu: 200m + memory: 128Mi + mgr-sidecar: + requests: + cpu: 50m + memory: 40Mi + limits: + memory: 100Mi storage: devicePathFilter: /dev/disk/by-path/pci-0000:00:10.0-scsi-0:0:6:0 useAllDevices: false