我必须处理存储在工作队列中的任务,并且我正在启动这种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
设置为某个值,以避免失败循环。