Kubernetes 队列配额
Kubernetes quotas queue
我需要根据 Kubernetes 配额对 Kubernetes 资源进行排队。
示例预期场景:
- 用户创建 Kubernetes 资源(假设是一个简单的 X pod)
- 达到quora对象资源计数,pod X进入
Pending
状态
- 资源释放(其他 pod Y 移除),我们的 X pod 开始创建
因为,由于 returns 403 FORBIDDEN
的配额行为,当配额中没有可用资源时,现在这种情况将不起作用:
If creating or updating a resource violates a quota constraint, the request will fail with HTTP status code 403 FORBIDDEN with a message explaining the constraint that would have been violated.
问题:
有没有办法通过原生 Kubernetes 机制实现这一点?
我试图通过 Kubernetes 作业执行 pods,但每个作业都是独立启动的,我无法控制执行顺序。我想以先进先出的方式执行它们。
IMO,如果 k8s 没有接受资源,它如何管理它的生命周期或执行顺序。
如果我对你的问题的理解正确,那么它是同一个 pod 试图被安排,那么你的工作应该以这样一种方式设计,即工作执行的顺序应该无关紧要,因为在某些情况下,一个执行可能不是已完成,下一个出现或前一个由于某些错误或相关服务不可用而失败。所以,下一次执行应该能够从上次离开的地方开始。
您还可以查看工作队列模式,如果它符合您的要求,如解释的那样https://kubernetes.io/docs/tasks/job/fine-parallel-processing-work-queue/
如果您只想一次执行一项作业。
我认为,运行 预定义顺序的作业必须由外部逻辑管理。为此,我们使用 Jenkins 管道。
我需要根据 Kubernetes 配额对 Kubernetes 资源进行排队。
示例预期场景:
- 用户创建 Kubernetes 资源(假设是一个简单的 X pod)
- 达到quora对象资源计数,pod X进入
Pending
状态 - 资源释放(其他 pod Y 移除),我们的 X pod 开始创建
因为,由于 returns 403 FORBIDDEN
的配额行为,当配额中没有可用资源时,现在这种情况将不起作用:
If creating or updating a resource violates a quota constraint, the request will fail with HTTP status code 403 FORBIDDEN with a message explaining the constraint that would have been violated.
问题: 有没有办法通过原生 Kubernetes 机制实现这一点?
我试图通过 Kubernetes 作业执行 pods,但每个作业都是独立启动的,我无法控制执行顺序。我想以先进先出的方式执行它们。
IMO,如果 k8s 没有接受资源,它如何管理它的生命周期或执行顺序。
如果我对你的问题的理解正确,那么它是同一个 pod 试图被安排,那么你的工作应该以这样一种方式设计,即工作执行的顺序应该无关紧要,因为在某些情况下,一个执行可能不是已完成,下一个出现或前一个由于某些错误或相关服务不可用而失败。所以,下一次执行应该能够从上次离开的地方开始。
您还可以查看工作队列模式,如果它符合您的要求,如解释的那样https://kubernetes.io/docs/tasks/job/fine-parallel-processing-work-queue/
如果您只想一次执行一项作业。
我认为,运行 预定义顺序的作业必须由外部逻辑管理。为此,我们使用 Jenkins 管道。