Estimate which pods are at risk of eviction under node memory or disk pressure.
When a node comes under CPU, memory, or disk pressure, the kubelet evicts pods in a defined order: BestEffort pods (no requests/limits) go first since they have no reserved resources to protect them, then Burstable pods ranked partly by PriorityClass and by how far their usage exceeds their requests, and Guaranteed pods (requests equal limits) go last, evicted only under the most extreme pressure. PriorityClass acts as a tiebreaker within and across these QoS bands, letting critical low-QoS pods still be protected relative to non-critical pods of the same class.
elevatedRisk% = ((bestEffortPods + lowPriorityBurstable) / totalPods) × 100
It's derived automatically from its resource spec: Guaranteed requires CPU and memory requests to equal limits for every container; BestEffort has no requests or limits set at all; Burstable is everything in between — you cannot set QoS class directly.
Under standard node-pressure eviction, QoS class is the primary sort key — BestEffort pods are generally evicted before Burstable and Guaranteed pods regardless of PriorityClass, though PriorityClass does influence scheduling preemption separately from kubelet eviction.
Set requests closer to (or equal to) actual usage/limits to shift it toward Guaranteed QoS, and assign it a higher PriorityClass — both reduce its relative eviction risk compared to lower-priority or under-provisioned pods on the same node.