Requests 参与放置,limits 约束资源消耗
Requests 参与放置和资源共享,limits 约束运行时消耗。它们是有关联的输入,不是对应用性能的一套通用下限与上限保证。应结合负载行为、争用风险和恢复要求选择,并查看准入后的 Pod,因为默认值与策略可能改变清单里提交的资源值。先区分记账、实际使用和执行约束,才能解释配置为什么影响行为。 解释放置前先读准入后的请求。CPU 节流和内存压力具有不同机制,需要关联证据;资源字段都不保证应用性能。 默认值也是契约的一部分 某资源只有 limit、没有 request 时,如果准入没有提供另一请求,Kubernetes 会把限制复制为请求。因此,只配 limit 通常不是零调度成本。LimitRange 默认值与 ResourceQuota 检查也会影响准入。解释 Pod 为什么 Pending 之前,应读取实际保存的两张资源映射,不能仅凭源文件中某一字段缺失进行判断。 Request 不会预先分配应用的物理内存,也不必然独占 CPU 核心。CPU 请求参与调度及争用时的相对份额。没有 CPU limit 的容器可以利用超过请求的空闲 CPU,但节点容量、祖先约束和竞争负载仍然构成边界。省略限制可能是有意选择,应配套明确容量和争用策略,而不是简单认定只配一边必然错误。 Linux 上 CPU limit 通常通过带宽节流执行,耗尽配额本身不会直接杀死进程。但等待可能增加延迟、触发应用超时或影响探针。整机 CPU 平均值低,也不能排除某个上限很紧的容器正在频繁节流。要比较对应时间窗口的需求、配额和等待,而不是拿整机平均值替代容器约束。 ...