💥
Pod OOMKilled — out of memory
Container killed by kernel OOM — fix limits, leaks, or node pressure.
Reviewed: ·Tested on: Kubernetes 1.29, Terraform 1.8, Ubuntu 22.04
Symptoms
- Reason: OOMKilled in kubectl describe pod
- Container restarts with exit code 137
- App slow then pod dies under load
1Confirm OOM and which container
kubectl describe pod <pod> -n <ns> | grep -A5 "Last State"
kubectl get pod <pod> -n <ns> -o jsonpath='{.status.containerStatuses[*].lastState.terminated.reason}'
kubectl top pod <pod> -n <ns> 2>/dev/null || echo "metrics-server needed"2Check limits vs usage
If memory limit equals request and app spikes, raise limit or fix leak. If no limits, set requests/limits to avoid node-wide OOM.
kubectl get pod <pod> -n <ns> -o jsonpath='{.spec.containers[*].resources}'
kubectl top pods -n <ns> --sort-by=memory | head -103Node-level memory pressure
kubectl describe node <node> | grep -A10 Conditions
kubectl get events -n <ns> --field-selector reason=OOMKilling4Mitigate and redeploy
# patch higher memory limit (example)
kubectl set resources deploy/<name> -n <ns> --limits=memory=512Mi --requests=memory=256Mi
kubectl rollout status deploy/<name> -n <ns>