即使Job失败也不要删除pod



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

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被终止。我希望它们继续运行并完成它们在队列中选择的项目的处理。

请问有办法吗?

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

最新更新