LearnGlossary

What is a QoS class in Kubernetes?

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.

The Guaranteed pod reserves all 200 MiB. The Burstable pod reserves 100 MiB. Kubernetes docs examples: memory each pod reserves on its node. Two bars on one shared memory scale with ticks at 0, 100 and 200 MiB, and one dashed line at 200 MiB labelled limit 200 MiB. Guaranteed: a teal bar labelled request 200 MiB runs the whole way to the limit, with the note all of it reserved. Burstable: a teal bar labelled request 100 MiB runs over the first half, then a hatched part labelled may use if the node has room runs from 100 to 200 MiB, with the note half of it reserved. The Guaranteed pod reserves all 200 MiB. The Burstable pod reserves 100 MiB. Kubernetes docs examples: memory each pod reserves on its nodelimit 200 MiBGuaranteedrequest 200 MiBall of it reservedBurstablerequest 100 MiBmay use if the node has roomhalf of it reserved0100200MiB
The memory numbers from the Kubernetes docs examples: the teal part is the request, which the node reserves, and the hatched part is room the Burstable pod may use up to its 200 MiB limit.

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.

Find your own number

One line in your cloud console. One PDF report with your estimated saving at list price.

Estimate your saving

Talk to the builders

Thirty minutes with the people who build Coral.

Book a demo (opens in a new tab)

Or write to founders@zoorik.com