apiVersion: batch/v1
kind: CronJob
metadata:
name: hello
spec:
suspend: true # 挂起 cronjob,不会影响已经开始的任务
schedule: "* * * * *" # 每分钟执行一次
successfulJobsHistoryLimit: 2 # 保留历史成功数量
failedJobsHistoryLimit: 3 # 保留历史失败数量
jobTemplate: # kind: job
spec:
suspend: true # 挂起 job (true 时运行中 pod 被终止,恢复时 activeDeadlineSeconds 也会重新计时)
completions: 5 # 完成次数 (default: 1)
parallelism: 2 # 并行个数 (default: 1)
backoffLimit: 2 # 重试次数 (default : 1 重启时间按指数曾长<10、20、30>.最多6m)
activeDeadlineSeconds: 20 # job 最大的生命周期,时间到停止所有相关 pod (Job 状态更新为 type: Failed、reason: DeadlineExceeded)
template:
spec:
containers:
- name: hello
image: busybox:1.28
imagePullPolicy: IfNotPresent
command:
- /bin/sh
- -c
- date; echo Hello from the Kubernetes cluster
restartPolicy: OnFailure # 控制 pod 异常时的动作,重启、异常重启、从不重启
- 有关时区问题如果 cronjob 没有明确指定,那么就按照 kube-controller-manger 指定的时区