Fre*_*der 4 google-cloud-platform kubernetes google-kubernetes-engine
我们遇到了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 气流的 Kubernetes_Pod_operator 将 pod/job 提交给 K8 集群,我们期望 K8 将这些作业放入其内部队列,并根据可用的集群容量在集群上选择并执行它们。
我们想知道,k8 内部是否支持队列并将作业/ Pod 放入队列中,并根据可用的集群容量在集群上拾取并执行它们?
这个问题有什么解决办法吗?或者是 k8 的限制,我们应该为此开发自己的解决方案吗?
您可以在作业 yaml 中配置容器资源。阅读以下有关如何实现此目标的链接:https : //kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/#how-pods-with-resource-requests-are-scheduled
此配置将确保作业保持“待处理”状态,直到满足要求。Kubernetes 调度程序使用一个内部队列,其中存储了所有“待处理”和“调度程序失败”的作业。
| 归档时间: |
|
| 查看次数: |
760 次 |
| 最近记录: |