In containerized Kubernetes environments, understanding the distinction between CPU throttling and Memory OOM kills is critical. While exceeding a CPU limit merely compresses execution time via the Linux Completely Fair Scheduler (CFS), exceeding a memory limit results in immediate, unrecoverable container termination.
How the Linux Kernel Triggers SIGKILL (Exit 137)
Every container runtime allocates a cgroup for the container process. When resident set memory (RSS) surpasses resources.limits.memory, the cgroup memory controller dispatches SIGKILL (Signal 9 + 128 = Exit Code 137). Kubernetes records this condition as OOMKilled.
Configuring Memory Headroom for Operator Controllers
Operators frequently maintain in-memory caches (such as controller-runtime client-go informers) of all managed custom resources in the cluster. As the number of CRs grows from 10 to 1,000, informer cache memory grows linearly. Always calculate a 30% to 50% buffer over baseline idle consumption.