【发布时间】:2021-06-10 02:56:53
【问题描述】:
我有 CPU 密集型作业/任务,
需要在kubernetes中运行,下面是job/task的过程
- 我们以队列或 API 调用的形式获取请求
- 应该创建 POd 并处理任务(少数作业可能在几分钟内运行,少数几小时内运行)
- 任务完成后删除 pod
这应该在规模上发生,如果队列中有更多作业,则创建更多作业(Max 10, 20, 30 2e 应该定义它)
我用的是KEDA,POD会被创建,Job完成后会crashloopbback,这是POD生命周期中的默认行为,因为重启策略设置为Always,它会尝试重新创建pod。我们还有其他选项,例如 OnFailure、Never,但我读过 Kubernetes Jobs 更合适
对于上述任务,Kubernetes Pod 或 Jobs 哪个更好,我们应该考虑根据使用情况和队列中的任务数量来扩展 POd 以及需要扩展 kubernetes 节点(云供应商支持)。
【问题讨论】:
标签: linux azure kubernetes containers keda