Kubernetes-Pod-Qos

在 节点 资源紧缺的情况下,应以何种次序终止哪些pod?

Kubernetes 无法自行对此做出决策,需要借助 pod对象的服务质量和优先级等完成判定。

根据Pod对象的 requests 和 limits 属性, Kubernetes 把pod的Qos分为3个类别:BestEffort , Burstable , Guaranteed . 

Guranteed:  为pod的每个容器都设置了cpu资源需求和资源限制,requests 和 limits 具有相同值, 这类pod对象具有最高级别服务质量。

Burstable: 至少有一个容器设置了CPU或内存资源的requests属性,但不满足Guaranteed类别的设定要求,这类Pod对象具有中等级别的Qos.

BestEffort: 不为任何一个容器设置requests 或 limits 属性,这类pod对象的服务质量级别最低。

 

Kubernetes 在节点资源紧缺是对pod的终结顺序:

BeftEffort 类别的最先被终结, 然后是 Burstable类别的pod.

Guranteed 类别的pod拥有最高的优先级,,他们一般不会被杀死,除非其内存资源超限,或者OOM时没有其他更低级别的pod存在。

 

相同级别的Pod在系统OOM时,与pod自身的requests属性相比,其内存占用比例最大的pod将先被杀死。

---

requests和limits设置同样的值,级别为 Guranteed

 

---

只为pod设置了requests,(只设置一个属性), 级别为 Burstable

 ----

reuests, limits都不设置,级别为 BestEffort , 最先被杀死。

 

 

Guranteed > Burstable > BestEffort 

posted @ 2022-02-09 14:42  lavida2000  阅读(76)  评论(0)    收藏  举报