Kubernetes: Resource: Job

 8th March 2021 at 9:03pm

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 来指定;不指定时不并行运行
  • 可以设置运行的超时时间