Kubernetes: Resource: CronJob

 8th March 2021 at 9:09pm

CronJob 类似 Job,但是它是周期性地跑或者在未来某个时间运行。

YAML:

apiVersion: batch/v1beta1               
kind: CronJob
metadata:
  name: batch-job-every-fifteen-minutes
spec:
  schedule: "0,15,30,45 * * * *"           
  jobTemplate:
    spec:
      template:                            
        metadata:                          
          labels:                          
            app: periodic-batch-job        
        spec:                              
          restartPolicy: OnFailure         
          containers:                      
          - name: main                     
            image: luksa/batch-job

schedule 字段的格式跟 Linux 的 cronjob 类似,分别是 Minute、Hour、Day of month、Month、Day of week。

创建一个 CronJob 后,k8s 会在指定的时间创建 Job 来运行指定的任务。

CronJob 并不能保证在确定的时间运行,因此 job 的代码逻辑需要保证两个 job 同时运行时也可以正常运作。