19-2、K8s 三种 QoS 等级 & 与 Resources(requests_limits)的核心关联

K8s 三种 QoS 等级 & 与 Resources(requests/limits)的核心关联

先一句话总结:K8s 的 Guaranteed、Burstable、BestEffort 三种 QoS,完全由 Pod 容器的 ** resources.requests ** 和 ** resources.limits ** 配置规则自动决定 ,不是手动指定标签,是靠资源配置自动划分,进而决定调度优先级、OOM 打分、驱逐被杀顺序。

一、先明确 Resources 两个核心字段

  • requests :Pod 申请最少需要多少资源(调度用,节点剩余资源够 requests 才会调度)

  • limits :Pod 允许使用最大资源上限(超了会被限流/杀掉)


二、三种 QoS 对应的资源配置规则

1. Guaranteed(最高优先级)

资源配置条件:

Pod 里所有容器 ,CPU 和内存都同时配置了 requests 和 limits ,且 requests = limits。

关联点:

  • 资源配额固定,不超量占用节点资源

  • 节点资源紧张时最后被驱逐、最后被OOM杀死

  • 适合核心业务、数据库、中间件等不能随便挂的应用

2. Burstable(中等优先级)

资源配置条件:

不满足 Guaranteed,且至少有一个容器配置了 CPU 或内存的 requests(或 limits)。

常见两种情况:

  1. 配了 requests 没配 limits

  2. requests ≠ limits

  3. 部分容器配了资源、部分没配

关联点:

  • 有基础资源申请,调度会考虑资源

  • 可以弹性超用到 limits 上限;没设 limits 就可占用节点空闲资源

  • 资源不足时,优先级低于 Guaranteed、高于 BestEffort,中间被驱逐

3. BestEffort(最低优先级)

资源配置条件:

Pod 里所有容器都完全不配置 requests 和 limits。

关联点:

  • 调度器不做资源预留,随便调度到任意节点

  • 能白嫖节点所有空闲资源

  • 节点内存/CPU压力大时,最先被驱逐、最先被OOM杀掉

  • 适合临时测试、离线小脚本、无关紧要的轻量任务


三、核心联系总结

  1. QoS 由 Resources 配置自动生成,无手动枚举QoS字段

你配好 requests/limits,K8s 自动归类成三种QoS。

  1. requests 决定调度

Guaranteed/Burstable 有 requests,调度会校验节点资源;BestEffort 无 requests,调度不校验。

  1. limits 决定资源超用上限 & QoS 等级

全容器 requests=limits → Guaranteed;

有配资源但不等/不全 → Burstable;

完全不配资源 → BestEffort。

  1. QoS 最终决定驱逐/杀Pod顺序

资源紧缺时被杀优先级:

BestEffort > Burstable > Guaranteed

(左边最先杀,右边最后杀)


四、极简对照表

QoS 等级 资源配置规则(requests/limits) 优先级 驱逐顺序
Guaranteed 所有容器CPU/内存 requests=limits 都配置 最高 最后杀
Burstable 至少配了一项requests/limits,不满足Guaranteed 中等 中间杀
BestEffort 所有容器都不配 requests、limits 最低 最先杀
相关推荐
lwx9148521 天前
Docker-安装SSH服务
docker·容器·ssh
艾伦_耶格宇2 天前
【kubernetes - 1.28版本】-11 K8S核心组件
java·容器·kubernetes
时间售卖铺2 天前
Docker实战:一键部署轻量级容器
运维·docker·云原生
月落汀兰2 天前
拒绝配置写死镜像!K8s 存储卷与配置管理,PV/PVC、ConfigMap、Secret 实战避坑指南
运维·kubernetes
艾伦_耶格宇2 天前
【kubernetes - 1.28版本】-10 K8S命名空间
云原生·容器·kubernetes
tedcloud1232 天前
Docker Compose 部署 Uptime Kuma:配置 HTTPS、QQ 邮箱告警与数据备份
服务器·网络协议·ui·docker·容器·https·开源
syntaxsage2 天前
Dive:Docker 镜像层可视化分析工具
运维·其他·docker·容器
java_logo2 天前
Docker 部署 Samba:轻松搭建局域网文件共享
运维·docker·容器·文件共享·samba·smb·轩辕镜像
草莓熊Lotso2 天前
【C++ 基于微服务的即时通讯系统】网关基建:cpp-httplib 与 WebSocketpp 从入门到实战
linux·开发语言·数据库·c++·redis·微服务·云原生
todoitbo2 天前
群晖NAS部署JmalCloud:Docker安装、文件管理、博客与公网访问完整教程
运维·docker·容器