- Kubernetes assigns QOS classes to pods based on the requests and limits configured for the pod.
- There are three QOS classes:
- Guaranteed class
logseq.order-list-type:: number
- Burstable class
logseq.order-list-type:: number
- BestEffort class
logseq.order-list-type:: number
- BestEffort:
- A pod is assigned this class if there the memory and cpu requests and limits are not configured.
- Falls at the bottom of the priority list.
- They can use any amount of resources as long as they are free and no other pod requires them.
- Incases where Guaranteed or Burstable pods require resources and the node is running out of resources then these pods are the first to get killed.
- Burstable:
- If requests and limits(optional) are set and limits if exists is higher than requests and not equal(which is obvious) is assigned this class.
- There is a minimum guaranteed resources available for the pod but they can use any amount of resources or till the limit if specified.
- This falls in between Guaranteed and BestEffort classes in terms of priority.
- The are second in line to get killed if they are using more resources than requests (limits is not guaranteed) and no BestEffort class pods exists.
- Guaranteed:
- If limits and requests(optional because if not specified it is assigned the same value as limits) and both are set to equal values then this class is assigned.
- They are higher in the priority ladder.
- They are guaranteed the maximum amount of resources.