我想知道,调度程序在调度Pod时会考虑资源限制吗? 例如,调度程序在特定节点中调度4个Pod,其总容量<200mi,400m>,而这些Pod的总资源限制为<300mi,700m>,会发生什么?
答案 0 :(得分:2)
在调度过程中仅考虑资源请求。这可能导致节点过量使用。 (Kubernetes文档中的Managing Compute Resources for Containers说得更多。)
在您的示例中,假设您的节点具有1个CPU和2 GB的RAM,并且您已计划4个Pod,每个Pod分别请求0.2 CPU和400 MB RAM。那些都“适合”(总共需要0.8 CPU和1.6 GB RAM),以便按计划进行。如果任何一个单独的Pod超出其自身的限制,则将限制其CPU使用率或内存分配将失败或终止该进程。但是,说所有的四个Pod都尝试分配600 MB的RAM:没有一个单独超过其限制,但是总的来说,它的内存超过了系统,因此底层Linux内核将调用其内存不足的杀手并关闭释放空间的过程。您可能会认为这是没有明显原因重启的pod。