Quality of Service (QoS) Classes

Kubernetes assigns each pod to a QoS class based on its resource requests and limits. This affects how pods are prioritized when resources become scarce.

QoS QoS

Guaranteed QoS

A pod gets Guaranteed QoS when:

  • Every container in the pod has identical CPU and memory requests and limits
  • Limits equal requests for all resources
resources:
  requests:
    memory: "128Mi"
    cpu: "500m"
  limits:
    memory: "128Mi"
    cpu: "500m"

Pods with Guaranteed QoS have the highest priority and are least likely to be evicted under resource pressure.

Burstable QoS

A pod gets Burstable QoS when:

  • At least one container has a resource request and/or limit
  • The pod doesn’t meet the criteria for Guaranteed QoS
resources:
  requests:
    memory: "64Mi"
    cpu: "250m"
  limits:
    memory: "128Mi"
    cpu: "500m"

Pods with Burstable QoS have medium priority for eviction.

BestEffort QoS

A pod gets BestEffort QoS when:

  • None of its containers have any resource requests or limits
# No resources section specified

Pods with BestEffort QoS have the lowest priority and are first to be evicted under resource pressure.

Further Reading and Resources