learning/k8s-intermediate/workload/wl-job/cleanup.md
当 Job 完成后:
kubectl 命令删除 Job,例如: kubectl delete jobs/pi 或者 kubectl delete -f https://kuboard.cn/statics/learning/job/job.yamlJob 通常会顺利的执行下去,但是在如下情况可能会非正常终止:
restartPolicy=Never)restartPolicy=OnFailure)
.spec.bakcoffLimit 描述的方式进行处理.spec.backoffLimit 中的值,Job 将被标记为失败,且尤其创建的所有 Pod 将被终止.spec.activeDeadlineSeconds。该字段限定了 Job 对象在集群中的存活时长,一旦达到 .spec.activeDeadlineSeconds 指定的时长,该 Job 创建的所有的 Pod 都将被终止,Job 的 Status 将变为 type:Failed 、 reason: DeadlineExceeded::: tip
Job 中 .spec.activeDeadlineSeconds 字段的优先级高于 .spec.backoffLimit。因此,正在重试失败 Pod 的 Job,在达到 .spec.activeDeadlineSecondes 时,将立刻停止重试,即使 .spec.backoffLimit 还未达到。
:::
例如:
apiVersion: batch/v1
kind: Job
metadata:
name: pi-with-timeout
spec:
backoffLimit: 5
activeDeadlineSeconds: 100
template:
spec:
containers:
- name: pi
image: perl
command: ["perl", "-Mbignum=bpi", "-wle", "print bpi(2000)"]
restartPolicy: Never
::: tip 注意
Job 中有两个 activeDeadlineSeconds: .spec.activeDeadlineSeconds 和 .spec.template.spec.activeDeadlineSeconds(参考 Pod)。请不要混淆了
:::