CronJob
有时我们需要定时执行一个批处理程序,此时就可以使用CronJob来接管Pod。
创建CronJob
CronJob的配置文件很有意思,它的spec.jobTemplate
就是Job的配置文件,相当于为Job加了一层计时器。
下面展示一个CronJob的具体配置文件案例:
apiVersion: batch/v1beta1
kind: CronJob
metadata:
name: hello
spec:
schedule: "0,15,30,45 1-3 * * *" # (必须)与Linux的cron一样,设定开始Job的时间
startingDeadlineSeconds: 15 # Pod最迟必须在预定时间后15s开始运行,若超过了15s,则任务不会被执行,并且显示为Failed
jobTemplate: # (必须)Job的配置文件
spec:
template: # Pods的模板
spec: # Pods的规格
containers:
- name: hello
image: busybox
command: ["echo", "hello k8s job!"]
restartPolicy: OnFailure
配置运行时间表
CronJob中的定时功能是由spec.schedule
字段指定的,其规范与Linux的crontab一致,默认为* * * * *
,从左往右每一个*
的含义如下:
代表一小时内的第几分,范围 0-59
代表一天中的第几小时,范围 0-23
代表一个月中的第几天,范围 1-31
代表一年中第几个月,范围 1-12
代表星期几,范围 0-7 (0及7都是星期天)
下面举几个例子:
每15分钟运行一次任务:
0,15,30,45 * * * *
每15分钟,即每小时的0分、15分、30分、45分
每隔30分钟运行一次任务,且仅在每月的第一天运行:
0,30 * 1 * *
每个星期天的3am运行任务:
0 3 * * 0
Last updated
Was this helpful?