Fix OOMKilled Pod OpenShift¶
Introduction¶
CrashLoopBackOff, OOMKilled, and Evicted states are runtime failures. Start with previous logs, container state, events, and resource limits before changing deployments.
Symptoms¶
Typical symptoms include failed pods, route errors, denied requests, unhealthy operators, or command errors that repeat after retries.
Common Causes¶
- Reading only current logs after the container restarted.
- Increasing limits without finding the memory growth cause.
- Ignoring eviction events from node pressure.
Step 1: Check the Current Status¶
oc get pods -n app
oc logs pod/web-7c9d7f6f8b-jx4mk -n app --previous
oc describe pod web-7c9d7f6f8b-jx4mk -n app
oc adm top pod web-7c9d7f6f8b-jx4mk -n app
Example output:
Last State: Terminated
Reason: OOMKilled
Exit Code: 137
Started: Sat, 30 May 2026 10:01:02 +0000
Finished: Sat, 30 May 2026 10:02:14 +0000
Step 2: Inspect Logs and Events¶
oc logs pod/web-7c9d7f6f8b-jx4mk -n app --previous
oc describe pod web-7c9d7f6f8b-jx4mk -n app
oc adm top pods -n app
Step 3: Verify Configuration¶
Compare the object selectors, service account, image reference, route target, or operator status with the failing symptom. In OpenShift, events often show the exact admission, scheduling, pull, SCC, or route reason.
Step 4: Apply the Fix¶
Apply the smallest targeted fix: correct the selector, update the route or service port, link the pull secret, grant the specific RBAC or SCC permission, or repair the unhealthy operator dependency.
Step 5: Confirm the Problem Is Resolved¶
Run the verification commands again and confirm the status, events, and user-facing test all agree.
Common Mistakes¶
- Reading only current logs after the container restarted.
- Increasing limits without finding the memory growth cause.
- Ignoring eviction events from node pressure.
Quick Checklist¶
- Confirm the active project.
- Inspect the exact object named in the error.
- Read recent events.
- Apply one focused fix.
- Verify status after the change.
Related Guides¶
Summary¶
Fix OOMKilled Pod OpenShift requires matching the symptom to the OpenShift object that owns it. Use oc status commands, events, logs, and focused verification so the fix is tied to evidence.