赵走x博客
网站访问量:151400
首页
书籍
软件
工具
古诗词
搜索
登录
1-准备工作
2-Container
3-Pod
4-Deployment
5-Service
6-ingress
7-Namespace
8-Configmap
9-Secret
10-Job
11-CronJob
12-Helm
13-Dashboard
11-CronJob
资源编号:570055
热度:344
## CronJob *CronJob* 可以理解为定时任务,创建基于 Cron 时间调度的 [Jobs](https://kubernetes.io/docs/concepts/workloads/controllers/job/)。 > CronJob 用于执行周期性的动作,例如备份、报告生成等。 这些任务中的每一个都应该配置为周期性重复的(例如:每天/每周/每月一次); 你可以定义任务开始执行的时间间隔。 Cron 时间表语法 ``` # ┌───────────── 分钟 (0 - 59) # │ ┌───────────── 小时 (0 - 23) # │ │ ┌───────────── 月的某天 (1 - 31) # │ │ │ ┌───────────── 月份 (1 - 12) # │ │ │ │ ┌───────────── 周的某天 (0 - 6)(周日到周一;在某些系统上,7 也是星期日) # │ │ │ │ │ 或者是 sun,mon,tue,web,thu,fri,sat # │ │ │ │ │ # │ │ │ │ │ # * * * * * ``` 用法除了需要加上 cron 表达式之外,其余基本和 Job 保持一致。 ```yaml apiVersion: batch/v1 kind: CronJob metadata: name: hello-cronjob spec: schedule: "* * * * *" # Every minute jobTemplate: spec: template: spec: restartPolicy: OnFailure containers: - name: echo image: busybox command: - "/bin/sh" args: - "-c" - "for i in 9 8 7 6 5 4 3 2 1 ; do echo $i ; done" ``` 使用命令和 Job 也基本保持一致,这里就不过多赘述。 ```shell kubectl apply -f hello-cronjob.yaml # cronjob.batch/hello-cronjob created kubectl get cronjob # NAME SCHEDULE SUSPEND ACTIVE LAST SCHEDULE AGE # hello-cronjob * * * * * False 0
8s kubectl get pods # NAME READY STATUS RESTARTS AGE # hello-cronjob-27694609--1-2nmdx 0/1 Completed 0 15s ```