Posted on:
Last modified:
参照官方文档,直接比着写就行了:
apiVersion: batch/v1
kind: CronJob
metadata:
name: hello
spec:
# 注意,这里是传统的 UNIX 风格的五段式 cron 表达式,而不是 Java 风格的六段式
schedule: "*/1 * * * *" # 也支持 @hourly 这些语法
jobTemplate:
spec:
template:
spec:
restartPolicy: OnFailure
containers:
- name: hello
image: busybox
imagePullPolicy: IfNotPresent
command:
- /bin/sh
- -c
- date; echo Hello from the Kubernetes cluster
列出所有 cronjob
kubectl get cronjob [JOB_NAME]
NAME SCHEDULE SUSPEND ACTIVE LAST SCHEDULE AGE
hello */1 * * * * False 0 <none> 10s
列出 cronjob 所有运行过的实例:
kubectl get jobs --watch
NAME COMPLETIONS DURATION AGE
hello-4111706356 0/1 0s
hello-4111706356 0/1 0s 0s
hello-4111706356 1/1 5s 5s
需要注意的一点,也是 Linux 上的 cron 命令忽视的一点,K8s 提供了 .spec.concurrentPolicy
选项,用来选择当上一任务还没有执行完毕时,如何处理并发。
------2022 更新------
k8s 1.24 中新增加了对 CronJob Timezone 的支持
© 2016-2022 Yifei Kong. Powered by ynotes
All contents are under the CC-BY-NC-SA license, if not otherwise specified.
Opinions expressed here are solely my own and do not express the views or opinions of my employer.
友情链接: MySQL 教程站