二十八、Qos服务质量
Qos服务质量
一、产生原因
Resources也不是万能的,使用一段时间后,资源总量可能会超过接节点配置。
根据这个情况,我们可以设置,清除资源。给pod配置,按顺序删除
二、服务质量QoS分类
-
Guaranteed:最高服务质量(保证),当宿主机内存不够时,会先kill掉QoS为BestEffort和Burstable的Pod,如果内存还是不够,才会kill掉QoS为Guaranteed,该级别Pod的资源占用量一般比较明确,
即requests的cpu和memory和limits的cpu和memory配置的一致
。 -
Burstable: 服务质量低于Guaranteed(突发),当宿主机内存不够时,会先kill掉QoS为BestEffort的Pod,如果内存还是不够之后就会kill掉QoS级别为Burstable的Pod,用来保证QoS质量为Guaranteed的Pod,该级别Pod一般知道最小资源使用量,但是当机器资源充足时,还是想尽可能的使用更多的资源,
即limits字段的cpu和memory 大于 requests的cpu和memory的配置
。 -
BestEffort:尽力而为,当宿主机内存不够时,首先kill的就是该QoS的Pod,用以保证Burstable和Guaranteed级别的Pod正常运行。不配置参数。
杀掉顺序:
BestEffort------>Burstable------->Guaranteed
三、实践示例
示例1:实现QoS为Guaranteed的Pod
测试要换个命名空间,要不有limitrange的会自动的打上资源配置。
创建一个命名空间
[root@k8s-master01 qos]#kubectl create ns qos-example
namespace/qos-example created
[root@k8s-master01 qos]#kubectl get ns
NAME STATUS AGE
......
qos-example Active 13s
编写yaml文件
apiVersion: v1
kind: Pod
metadata:
name: qos-demo
nam