Skip to content
Preptima
hardScenarioConceptDesignMidSeniorStaff

Pods are being evicted during node pressure even though your CPU dashboards look fine. Where do you look, and what would you change so it stops?

CPU is compressible, so the kubelet throttles it rather than evicting for it. Eviction comes from memory, ephemeral storage or inodes - and which pods die is decided by QoS class, not by who caused the pressure. Check node conditions and eviction thresholds first, then fix the requests and limits so critical workloads are Guaranteed rather than BestEffort.

4 min readUpdated 2026-08-16Target archetype: Big Tech, Enterprise Captive, Product Startup

Answer

Short answer

The CPU dashboards look fine because CPU is not an eviction trigger. It is a compressible resource — when a node runs out, the kernel throttles containers and everything gets slower. Eviction happens for incompressible resources: memory, ephemeral storage and inodes, where there is no way to give a process less without taking it away. And the pods chosen for eviction are selected by QoS class, not by which pod caused the pressure.

Was this answer helpful?

Likely follow-ups

  • What is the difference between an eviction and an OOMKilled container, and how do you tell them apart?
  • Which pod does the kubelet evict first, and why might that be the wrong one for you?
  • Your app writes logs to a file inside the container. How can that evict it?
  • What does setting a memory request equal to the limit actually buy you?
  • How would PodDisruptionBudgets interact with this, and do they help here?

Related questions

Masterclass guide

Further reading

Related Topics