• 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.