【发布时间】:2018-09-26 22:51:20
【问题描述】:
我们遇到了kubernetes排队的大问题。
我们正在通过工作流管理器(即 Airflow)向集群管理器(即 AWS Batch)提交作业。由于 AWS 批处理有限制, 无论提交到队列的作业数量如何,批处理都同时执行的作业数量等于集群中可用的 vCPU 数量。 为了克服 AWS 批处理的这个限制,我们计划通过 AWS 批处理迁移到 Kubernetes。
但是,我们不确定kubernetes 是如何处理这个问题的,
在探索过程中,我们在以下链接中获得了队列示例。
https://kubernetes.io/docs/tasks/job/fine-parallel-processing-work-queue/
https://kubernetes.io/docs/tasks/job/coarse-parallel-processing-work-queue/
在这些示例中,我们要求我们将任务写入队列并通过我们的代码从队列中读取。 但是,这里解释的案例并不是我们想要的。 在我们的例子中,Apache airflow 的 Kubernetes_Pod_operator 会将 pod/job 提交到 K8 集群, 我们预计 K8 会将这些作业放入其内部队列中,然后根据可用的集群容量在集群上提取并执行它们。
我们想知道,k8 内部是否支持队列并将作业/pod 放入队列中,以及 根据可用的集群容量在集群上提取并执行它们?
有解决这个问题的办法吗?或者它是 k8 的限制,我们应该为此开发自己的解决方案?
【问题讨论】:
标签: kubernetes google-cloud-platform google-kubernetes-engine