k8s_QoS and OOM
describe k8s pod的时候,会看到一行QoS Class,这玩意对于k8s里的应用,就好像oom_score_adj之于linux应用,决定着当资源紧张的时候,pod被驱逐的优先顺序
k8s不想oomscore一样可以直接通过调节数值来定义,他分成固定的三类:
Guaranteed
Burstable
BestEffort
决定一个应用的QoS Class是哪一类的,是他们对资源限制的配置,当你给应用配置了cpu及内存的request和limit并且两者值相等的时候,他的种类为Guaranteed,当你至少配置了一项cpu或者内存的request的时候,他的种类为Burstable,当你什么都没有配置的时候,他的种类为BestEffort
这三种类型的容器受到的待遇天差地别,他们的cgroupsPath不同,当然还有最重要的,他们初始化的oomscoreadj也完全不同,Guaranteed可能是-998,Burstable可能是998,BestEffort就可能是1000了
还记得之前那个悄悄给自己应用取消掉了资源限制,以为这样可以为所欲为的开发的例子,java+按比例吃资源启动+容器无资源上限,得到的结果就是他的应用不停的被缺少内存资源的宿主机驱逐,属于是自作聪明了
评论已关闭