CKAD — QoS Classes

less than 1 minute read

QoS Classes

Kubernetes assigns a Quality of Service class to each Pod based on its resource configuration. This affects eviction priority when a node runs low on resources.

QoS Class Condition Eviction Priority
Guaranteed All containers have equal requests and limits for both CPU and memory Lowest (last to be evicted)
Burstable At least one container has requests or limits set, but not equal Medium
BestEffort No requests or limits set on any container Highest (first to be evicted)

Guaranteed Example

resources:
  requests:
    cpu: 500m
    memory: 256Mi
  limits:
    cpu: 500m      # Same as request
    memory: 256Mi   # Same as request

Burstable Example

resources:
  requests:
    cpu: 250m
    memory: 128Mi
  limits:
    cpu: 500m      # Different from request
    memory: 256Mi   # Different from request

BestEffort Example

# No resources section at all
containers:
- name: app
  image: nginx:1.27
  # No resources specified
# Check a Pod's QoS class
kubectl get pod app -o jsonpath='{.status.qosClass}'

Next: LimitRange & ResourceQuota →

Updated: