11 条回复  ·  197 次点击
guanzhangzhang 初学 2024-9-6 09:41:58
request 是资源请求占坑,limit 是 cgroup 限制
例如一个 1G 内存的 node
     你可以部署多个没有 request 的 pod ,不配置 limits 则实际例如内存 oom 紧张时候 oom-killer 会根据 oom_score 得分去杀进程
同样 1G 内存的 node ,你 request 配置 400M 内存,你 replicas=3 只有两个能调度到该节点,实际内存使用 1M ,都是这样,request 是资源占坑。

limit 除去 cgroup 限制,还涉及到 pod Qos ,会生成 oom_score_adj
cinlen 小成 2024-9-6 10:09:43
k8s 默认的调度器不是 load-aware 的,也就是说它感知不到你物理上的资源消耗。

它凭节点上的 pod requests 资源总和做决策,你的 pod 不写 resource.requests ,那在 k8s 调度器看来你的 pod 就不占资源。

你可以确认看看是不是:

1. 这 5 个 centos 节点的 pod requests 资源之和较少
2. 是不是你的架构是 3 master 5 worker ?然后有什么策略会让 workloads 优先考虑调度到 worker 。
12
返回顶部