k8s之Qos(服务质量)
1. Qos简介
QoS的英文全称为"Quality of Service",中文名为"服务质量"。在kubernetes中,每个POD都有个QoS标记,通过这个Qos标记来对POD进行服务质量管理,它确定Pod的调度和驱逐优先级。它取决于用户对服务质量的预期,也就是期望的服务质量。对于POD来说,服务质量体现在两个指标上,一个指标是CPU,另一个指标是内存。在实际运行过程中,当NODE节点上内存资源紧张的时候,kubernetes根据POD具有的不同QoS标记,采取不同的处理策略。
在Kubernetes中,POD的QoS服务质量一共有三个级别:
- BestEffort :
POD中的所有容器都没有指定CPU和内存的requests和limits,那么这个POD的QoS就是BestEffort级别。 - Burstable:
POD中只要有一个容器的requests和limits的设置同其他容器设置的不一致,那么这个POD的QoS就是Burstable级别。 - Guaranteed:
POD中所有容器都必须统一设置了limits,并且设置参数都一致,如果有一个容器要设置requests,那么所有容器都要设置,并设置参数同limits一致,那么这个POD的QoS就是Guaranteed级别 。
三个级别的优先级从低到高的顺序是:
Guaranteed pods -> Burstable pods -> BestEffort pods