QOS介绍
在 K8S 中,Pod 的 QoS(Quality of Service,服务质量) 是指对 Pod 资源(如 CPU、内存等)分配的一种分类机制,根据资源请求和限制的设置,确定 Pod 的优先级和资源调度策略
Guaranteed(保证型)
- 当 Pod 的资源请求和限制(requests 和 limits)相等时,它会被分配为 Guaranteed 类别
- 对于每个容器,
requests
和limits
的值相等 - 会对pod供最高级别的资源保障,即使在系统资源紧张的情况下,也不会被 OOM Killer 轻易杀死
yaml
resources:
requests:
memory: "500Mi"
cpu: "500Mi"
limits:
memory: "500m"
cpu: "500Mi"
Burstable(突发型)
-
当 Pod 的
requests
和limits
不相等时,Pod 会被分配为 Burstable 类别 -
Pod 中的至少一个容器的
requests
小于其limits
,即容器可以在需求不高时使用更少的资源,但在资源充足时也能"突发"使用更多资源,适用于那些资源需求可能会波动的应用 -
在资源充足时可以使用更多资源,但当系统资源紧张时,Pod 会优先保证其
requests
中配置的资源
yaml
resources:
requests:
memory: "200Mi"
cpu: "200Mi"
limits:
memory: "500Mi"
cpu: "1"
BestEffort(尽力型)
- 当 Pod 没有指定任何资源请求和限制时,它会被分配为 BestEffort 类别
- 在系统资源充足时,Pod 可以运行。在系统资源紧张时,Pod 可能会被 OOM Killer 或调度器优先驱逐