Limit Exceptions
WhenlimitOverage.enabled is set, a container that gets OOM-killed at its limit (not
just its request) triggers a LimitException — because raising the request won’t help; the
ceiling itself is too low.
- Standard workloads get an automatic limit raise, recorded as an exception you can approve as the new normal or reject to revert.
- HPA-managed workloads get a
minReplicasbump instead — but only when running atminReplicas(if the HPA has already scaled up, more replicas won’t fix the OOM, so it falls back to raising the memory limit). - A terminated-pod scan catches OOM signals on
Failedpods whose Deployment created a fresh replacement (the running replica has no OOM history), so an OOM-at-limit is never missed.
Storage Exceptions
A scanner watches PVC usage (via Prometheuskubelet_volume_stats_*) and files a
StorageException when a volume crosses its threshold (default 90%). From the dashboard you
can:
States flow
Detected → Snoozed / Expanded / Acknowledged / CapacityExhausted. An auto-expand
option (with a ceiling) can grow a volume automatically as it fills, and every expansion is
audited with an operator note. Snoozed exceptions show a live countdown.
Direct PVC management (expand any healthy PVC without waiting for an exception, set per-PVC
ceilings/thresholds/auto-expand) lives on the Storage page — see Storage.
The exception workflow here is for volumes that have already crossed a threshold.
Where to find them
Both have dedicated dashboard pages (Limit Exceptions, Storage Exceptions) and a tab on each namespace’s detail page. The MCP server also exposes active exceptions to read-only clients vialist_exceptions.