Kubernetes配额队列

时间:2019-04-28 09:35:00

标签: kubernetes queue scheduler jobs quota

我需要根据Kubernetes配额对Kubernetes资源进行排队。

示例预期场景:

  • 用户创建Kubernetes资源(比方说一个简单的X pod)
  • 达到法定对象资源计数,吊舱X进入Pending状态
  • 资源已释放(其他Pod Y已删除),我们的X Pod开始创建

因为,当配额中没有可用资源时,由于返回403 FORBIDDEN的配额行为,这种情况现在不起作用:

  

如果创建或更新资源违反了配额限制,则请求将失败,并显示HTTP状态码403 FORBIDDEN,并显示一条消息,说明可能违反了该限制。

问题: 有没有办法通过本地Kubernetes机制来实现这一目标?

我试图通过Kubernetes Jobs执行Pod,但是每个作业都是独立启动的,因此我无法控制执行顺序。我想用先进先出方法执行它们。

2 个答案:

答案 0 :(得分:2)

IMO,如果k8s尚未接受该资源,那么它如何管理其生命周期或执行顺序。

如果我正确理解了您的问题,然后尝试安排相同的窗格,则您的工作应该以这样一种方式设计:工作执行的顺序应该无关紧要,因为在某些情况下可能没有完成一个执行并且下一个出现或上一个由于某种错误或相关服务不可用而失败。因此,下一次执行应该能够从最后一个执行的位置开始。

https://kubernetes.io/docs/tasks/job/fine-parallel-processing-work-queue/所述,您还可以查看工作队列模式是否适合您的要求。

如果您只希望一次执行一项作业。

答案 1 :(得分:0)

我认为,按预定义顺序运行的作业必须由外部逻辑进行管理。为此,我们使用Jenkins Pipeline。