1

我必须处理存储在工作队列中的任务,并且我正在启动这种工作来完成它:

apiVersion: batch/v1
kind: Job
metadata:
  name: pi
spec:
  template:
    spec:
      parallelism: 10
      containers:
      - name: pi
        image: perl
        command: ["some",  "long", "command"]
      restartPolicy: Never
  backoffLimit: 0

问题是,如果 Job 管理的 Pod 中的一个失败,Job 会在所有其他 Pod 完成之前将其终止。就我而言,我希望将作业标记为失败,但我不希望其 Pod 被终止。我希望他们继续运行并完成处理他们在队列中挑选的项目。

请问有办法吗?

4

1 回答 1

0

正如评论中已经提到的,您可以设置restartPolicy: OnFailure,这意味着 kubelet 将执行重启,直到作业成功。但是,每次重试都不会增加失败次数。但是,您可以设置activeDeadlineSeconds为某个值以避免循环失败。

于 2021-09-21T15:38:25.857 回答