Updated 26 October 2026 · Published by Zoorik
A Kubernetes QoS class (quality of service class) is the category Kubernetes assigns to every pod. It comes from the CPU and memory requests and limits of its containers. It predicts which pods are evicted first when a node runs short of memory.
The three Kubernetes QoS classes
- Guaranteed: every container’s CPU and memory limits equal its requests.
- Burstable: any other pod with a CPU or memory request or limit.
- BestEffort: no container sets any of these.
Pod-level resources (beta since v1.34) follow the same rules. The class never changes, even with an in-place resize (stable since v1.35).
BestEffort pods are usually evicted first, then Burstable, then Guaranteed. The kubelet starts with pods using more than their requests.
QoS Burstable vs Guaranteed
The docs’ Guaranteed pod sets 0.7 CPU and 200 MiB of memory as both request and limit. Their Burstable pod requests 100 MiB, with a 200 MiB limit.
The first reserves all 200 MiB. The second reserves 100 MiB and may use up to 200 MiB if the node has room.
Why it matters for your cloud cost
A pod’s requests reserve room on its node, even when use is low.
- A Guaranteed container’s limit equals its request. So the request must cover its peak.
- Set only CPU and memory limits on every container, and Kubernetes copies them into the requests unless a default applies. The pod is then Guaranteed and reserves its full limits.
Coral refuses an in-place resize that would change a pod’s QoS class. Where its policy keeps Guaranteed QoS, it sets the limit equal to the request.
The free assessment works out your own figure.
Read next: Kubernetes pod rebalancing
Sources: Kubernetes, “Pod Quality of Service Classes” (opens in a new tab); Kubernetes, “Configure Quality of Service for Pods” (opens in a new tab); Kubernetes, “Resource Management for Pods and Containers” (opens in a new tab); Kubernetes, “Node-pressure Eviction” (opens in a new tab).