JVM pods get OOMKilled in Kubernetes with jvm-fit
Java containers in Kubernetes frequently experience OOMKilled errors with half-empty heaps because container memory limits encompass off-heap allocations like metaspace, thread stacks, and direct buffers. The author explains that non-heap memory must be explicitly factored into container limits alongside heap configurations, and introduces the open-source tool jvm-fit to check JVM flags against Kubernetes manifests. Open article →