482f625ecf3e8e0418ea1bc235dc95fd80f81e7d
The Ceph storage layer must never be killed by kubelet eviction or the Linux OOM killer. Pre-this commit, every Ceph daemon (mon, mgr, osd, mds, rgw) ran with no priorityClassName and Burstable QoS — which means they'd be picked early by both the eviction algorithm under node pressure AND the kernel OOM killer. Three changes: cephcluster.yaml: spec.priorityClassNames.all = system-node-critical (PriorityValue 2000001000 — the highest built-in class). Applies to mon, mgr, osd, cleanup daemons. Memory requests bumped to equal limits for mon/osd/mgr so they land in Guaranteed QoS; the kernel then clamps oom_score_adj as low as possible. storageclass.yaml (CephFilesystem MDS): same priority class. Losing the active MDS hangs every CephFS mount until standby promotes — worth pinning. memory bumped to 4Gi/4Gi for Guaranteed. objectstore.yaml (CephObjectStore RGW): system-cluster-critical rather than -node-critical. Object storage outage is recoverable and blocks nothing in-cluster, so less aggressive priority is appropriate, but still above app pods. memory 512Mi/512Mi for Guaranteed. CPU limits intentionally NOT added on any daemon — Ceph benefits from CPU bursting during recovery/backfill, and the cluster runs at ~15% actual CPU so contention isn't real. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Description
No description provided
38 MiB