我想知道,调度程序在调度pod时会考虑资源限制吗? 例如,调度程序调度特定节点中的4个容量,总容量<200mi,400m>,并且这些容量的总资源限制<300mi,700m>,将会发生什么?

分析解答

在调度期间仅考虑资源要求。这可能导致节点过度使用。 (Kubernetes文档中的管理容器的Compute Resources表示更多。)

在您的示例中,假设您的节点有1个CPU和2 GB RAM,并且您已经安排了4个pod,每个pod请求0.2个CPU和400个MB RAM。那些都是"fit"(总共需要0.8个CPU和1.6个GB RAM),所以他们可以安排。如果任何单个pod超出其自身限制,其CPU使用率将受到限制,否则memory分配将失败或进程将被终止。但是,据说所有4个pod尝试分配600 MB的RAM:没有一个单独超出其限制,但总体来说它比系统更多memory,因此底层Linux内核将调用其 out-of-memory 杀手并关闭进程以释放空间。您可能会将此视为pod重新启动,没有明显原因。