K8s 服务质量(Quality of Service, QoS
2022-09-10 本文已影响0人
quanCN
requests/limits
- requests
指定所需的最小资源量 - limits
指定可能占用的最大资源量
apiVersion: v1
kind: Pod
metadata:
name: test-demo
spec:
containers:
- name: test-demo
image: nginx
resources:
limits:
memory: "200Mi"
cpu: "200m"
requests:
memory: "100Mi"
cpu: "100m"
QoS
K8s会根据是否指定了requests,limits或同时指定了两者,而提供不同类型的服务质量(Quality of Service, QoS)
- Best-Effort - 尽力而为
Pod没有为容器设置任何requests和limits。这类Pod的优先级最低,而当Pod所在节点上的不可压缩资源被耗尽时,这些Pod会被第一个kill - Burstable - 不稳定的
Pod指定了requests和limits,但是二者不相等(且limits大于requests)。这类Pod可以获取最小资源量,而且也可以在资源充足的情况下消耗更多资源,直到其限制指定的最大资源量。当节点的不可压缩资源紧缺时,如果不存在Best-Effort的Pod,那么这些Pod就会被kill - Guaranteed - 有保证的
Pod指定了相同数量的request和limit资源。这类Pod的优先级最高,Kubernetes保证不会在Best-Effort和Burstable类型的Pod存在的情况下被kill