安排比可用资源更多的pod

时间:2017-04-06 18:32:25

标签: kubernetes

假设我有1000个相同的pod我想最终运行,但节点资源只允许10个pod并行运行。

如果他们干净地退出,每个吊舱最终会移除他们的RC,因此如果有足够的时间,所有吊舱都应该运行。

如果我同时安排所有1000个吊舱,其中990个吊舱将在最初待定。 The scheduler会将所有990个pod保持在一个繁忙的循环中,试图进行调度,并且只有在删除了10个正在运行的pod之一后,该操作才会成功(对于某个pod)。

这种繁忙的循环在我的情况下远非理想,因为它可能会占用所有调度程序的可用资源。 kubernetes原生提供的替代解决方案是什么?很明显,这种特殊的调度方式比你能够处理的更多的pod并不是kubernetes优化的东西。

1 个答案:

答案 0 :(得分:1)

此类工作负载更适合Job资源。

由于您要运行固定数量的pod,因此最简单的方法是创建一个margins, at dydx (DISAGMT= (0) CHILDRENDUMMY= (0 1)) vsquish 设置为1000的作业。

然后,您可以控制通过.spec.completions同时运行的pod数量。默认情况下,此值设置为1,这意味着一次只能运行一个pod,但您可以将其设置为更高的值以使作业更快完成(例如10,因为这是您的节点可以处理的限制)。