Kubernetes 安排的播客数量超过可用资源的数量

Kubernetes 安排的播客数量超过可用资源的数量,kubernetes,Kubernetes,假设我有1000个相同的pod,我希望最终能够运行,但节点资源只允许10个pod并行运行 如果干净地退出,每个吊舱最终都会移除它们的RC,所以如果有足够的时间,所有吊舱都应该运行 但是,如果我同时调度所有1000个pod,那么最初将有990个等待处理。将所有990个吊舱保持在一个繁忙的循环中,并尝试进行调度,只有在移除10个正在运行的吊舱中的一个后,操作才会成功(对于某个吊舱) 在我的情况下,这个繁忙的循环远不是理想的,因为它可能会占用调度器的所有可用资源。kubernetes是否提供了本机提供

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

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

但是,如果我同时调度所有1000个pod,那么最初将有990个等待处理。将所有990个吊舱保持在一个繁忙的循环中,并尝试进行调度,只有在移除10个正在运行的吊舱中的一个后,操作才会成功(对于某个吊舱)


在我的情况下,这个繁忙的循环远不是理想的,因为它可能会占用调度器的所有可用资源。kubernetes是否提供了本机提供的替代解决方案?显然,kubernetes并没有对这种特殊的行为进行优化,即调度的吊舱比您能够处理的要多。

这种工作负载更适合资源

由于要运行固定数量的pod,因此最简单的方法是创建一个作业,将
.spec.completions
设置为1000


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

听起来您对pod做了一些奇怪的事情。在这里使用作业更有意义吗?你必须更多地解释你的用例,因为一个接一个地运行1000个相同的豆荚显然没有意义(因为它们是相同的)。@PixelElephant:事实证明我不知道作业的存在,而这正是我想要的。如果你想把它作为一个答案,我很乐意接受!