Skip to content

BestEffort QoS Pods

BestEffort is one of the Kubernetes Quality of Service (QoS) classes assigned to Pods. It represents the lowest priority tier for resource scheduling and management.^[400-devops__06-Kubernetes__k8s-ithelp__Day21__README.md]

Classification Criteria

A Pod is classified as BestEffort when none of its containers have set resource request or limit values for CPU or memory.^[400-devops__06-Kubernetes__k8s-ithelp__Day21__README.md]

For example, the following Pod definition lacks a resources section entirely and will therefore be assigned the BestEffort class:

apiVersion: v1
kind: [Pod](<./pod.md>)
metadata:
  name: qos-demo-3
  namespace: qos-example
spec:
  containers:
  - name: qos-demo-3-ctr
    image: nginx

You can verify the QoS class of a running Pod by inspecting its status, which will display qosClass: BestEffort.^[400-devops__06-Kubernetes__k8s-ithelp__Day21__README.md]

Resource Behavior and Eviction

Because BestEffort Pods do not request specific resources, the scheduler has no specific resource guarantees to consider when placing them on a node.^[400-devops__06-Kubernetes__k8s-ithelp__Day21__README.md] Consequently, these Pods operate with the lowest priority compared to other QoS classes.^[400-devops__06-Kubernetes__k8s-ithelp__Day21__README.md]

In scenarios where system resources (such as memory) are exhausted, the Kubernetes eviction mechanism will target BestEffort Pods first to reclaim capacity.^[400-devops__06-Kubernetes__k8s-ithelp__Day21__README.md] Only after all BestEffort Pods have been terminated will the system consider evicting Pods from higher priority classes.

Sources

  • 400-devops__06-Kubernetes__k8s-ithelp__Day21__README.md