Wednesday, April 27, 2022

Kubernetes# Quality of Service (QoS) class

 Quality of Service (QoS) class to determine which pod to kill first in Kubernetes

The request is a resource that the container is guaranteed to get and the limit is a resource that the container gets max

When pods on the node try to utilize resources that are not available on the node, Kubernetes uses the QoS class to determine which pod to kill first

1) Best effort:
Your pod gets the best-effort class if you do not specify any CPU/Memory requests and limits. Best-effort pods are low-priority pods. The best-effort pods get killed first if the node runs out of resources.

2) Burstable:
If you set the request lower than the limit, the pod gets burstable class. If the node runs out of resources, burstable pods get killed if no best effort pods are available.

3) Guaranteed: 
The pod gets a guaranteed class if the request and limit values are the same. It is considered the highest priority pod and gets killed if there are no best-effort or burstable pods.

Kubernetes scheduler schedules pod based on their QoS class values. QoS class of a pod is assigned by its resource limits and requests definitions of containers. These classes have impacts on the resource utilization of nodes. In order to utilize available resources efficiently, they must be considered.

 Enjoyed this post? Never miss out on future posts by 

Follow on LinkedIn

You may also like

Kubernetes AWS Java Coding Question
Microservices Core Java Spring Boot
Spring Framework Kafka Miscellaneous