标准答案
- 调度器主要依据 requests 判断节点是否有可分配容量,实际使用超过 request 不一定立即被杀。
- CPU limit 可能造成 throttling,内存 limit 超出可能触发 cgroup OOM;资源行为和 CPU、内存不同。
- 设置应基于 P95/P99 使用量、启动峰值、批任务和节点预留,不能用平均值刚好填满。
- 上线后观察实际使用、限制事件、驱逐、延迟和业务吞吐,持续校准 requests/limits。
题目解析
requests 参与调度和资源预留,limits 约束运行时可用上限;CPU 超过 limit 通常表现为 throttling,内存超过 limit 可能触发 cgroup OOM。request 不是硬上限,容器可能在节点有余量时使用更多,但 QoS、驱逐和调度会受其影响。
设置应结合 P95/P99、启动峰值、批任务、线程池、堆、缓存和下游连接预算。上线后把使用量、throttling、OOM、Pending、驱逐、P99 和吞吐放在一起观察,避免用平均值填满节点或完全不设边界。
常见误区
- 误区:所有容器都设成无限制。改正:为工作负载设置有依据的 request/limit,并用配额和监控保护集群。
- 误区:把 request 当成硬上限。改正:区分调度预留、QoS 和运行时 limit。
- 误区:只看 CPU 不看内存峰值。改正:同时观测内存工作集、启动峰值、缓存和 OOM 事件。