The limit is below what the workload actually needs
CommonThe most common case. The limit was set from a guess, a copied manifest or a tidy round number, and the application's real steady-state usage is higher. Nothing is broken; the ceiling is simply in the wrong place.
Confirm
kubectl top pod <pod> --containers
Usage sitting close to the limit even when the app is behaving. If steady-state usage is already near the ceiling, the limit is the problem.
Fix
- Observe usage over a normal cycle, including any startup spike, then set the limit above the observed peak with genuine headroom.
- Set the request to typical usage and the limit above peak. Requests drive scheduling; limits are the kill line.
kubectl set resources deployment <name> --limits=memory=512Mi --requests=memory=256Mi
Illustrative numbers only — use your own measurements. This triggers a rollout.