CKAD — QoS Classes
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}'