Job 表示一次性任务。Job 的 pod template 中生成的 pod,跑的进程不再是一直运行的服务,而是能跑完的任务。
Job 的 pod 所运行的 node 一旦挂了,k8s 会重新在别的 node 上起该 pod。
Job 的 YAML:
apiVersion: batch/v1
kind: Job
metadata:
name: batch-job
spec:
template:
metadata:
labels:
app: batch-job
spec:
completions: 5
parallelism: 2
restartPolicy: OnFailure
containers:
- name: main
image: luksa/batch-job
注意点:
- restartPolicy 无法是默认的 Always,而需要设置为 OnFailure 或 Never;可以设置重试次数的上限
- Job 可以跑多次,即串行地起 pod 来运行。使用
completions
指定,不指定时只跑一次 - Job 可以并行运行,用
parallelism
来指定;不指定时不并行运行 - 可以设置运行的超时时间