0

我有 CPU 密集型作业/任务,

需要在kubernetes中运行,下面是job/task的流程

  1. 我们以队列或 API 调用的形式获取请求
  2. 应该创建 POd 并处理任务(几个作业可能在几分钟内运行,几个小时内运行)
  3. 任务完成后删除 pod

这应该在规模上发生,如果队列中有更多作业,则创建更多作业(Max 10, 20, 30 2e 应该定义它)

我使用 KEDA,将创建 POD,并且在作业完成后它会崩溃循环,这是 POD 生命周期中的默认行为,因为它尝试重新创建 pod,因为重启策略设置为 Always。我们还有其他选项,例如 OnFailure、Never,但我读过 Kubernetes Jobs 更合适

对于上述任务,Kubernetes Pods 或 Jobs 哪个是更好的选择,我们应该考虑扩展 POds,并且还需要根据使用情况和队列中的任务数量来扩展 kubernetes 节点(云供应商支持它)。

4

1 回答 1

0

KEDA ScaledJobs最适合这种场景,可以通过Queue、Storage等触发(目前可用的scaler可以在这里找到)

于 2021-06-28T09:06:32.937 回答