Diagnostic step 1
Confirm cgroup drivers: check kubelet --cgroup-driver and containerd config (sudo cat /etc/containerd/config.toml) and ensure both use 'systemd' or 'cgroupfs' consistently; avoid changing in production without testing
Generated Oct 3, 2026, 12:35:03 AM
Confirm cgroup drivers: check kubelet --cgroup-driver and containerd config (sudo cat /etc/containerd/config.toml) and ensure both use 'systemd' or 'cgroupfs' consistently; avoid changing in production without testing
Inspect effective cgroup limits for a live container: identify container PID, then check memory.max and memory.usage_in_bytes under /sys/fs/cgroup/<slice>/... and compare to expected values
Check systemd slice configs for MemoryMax: systemctl show --property=MemoryAccounting yes and inspect /etc/systemd/system/*.slice for MemoryMax entries; if present and inappropriate, test removing or raising them and restart services (reversible by restoring original files)
If containers rely on default limits, add explicit memory.limits in pod spec as an immediate mitigation to prevent host OOM kills; use HorizontalPodAutoscaler and proper requests/limits in deployment manifests
Collect node and kubelet logs, and if cgroup driver mismatch or systemd enforced limits are found and cannot be safely changed, escalate to cluster infra team to coordinate configuration changes and plan a rolling node update (changes here can affect many workloads)