k8s 之cronjob
k8s中的定时执行任务,实际就是基于job实现的使用实例:mycronjob-busybox.yamlapiVersion: batch/v1beta1kind: CronJobmetadata:name: mycronjob-busyboxspec:schedule: "*/1 * * * *"startingDeadlineSeconds: 60concurrencyPolicy: Repla
·
k8s中的定时执行任务,实际就是基于job实现的
使用实例:
mycronjob-busybox.yaml
apiVersion: batch/v1beta1
kind: CronJob
metadata:
name: mycronjob-busybox
spec:
schedule: "*/1 * * * *"
startingDeadlineSeconds: 60
concurrencyPolicy: Replace
jobTemplate:
spec:
template:
spec:
restartPolicy: Never
containers:
- name: mycronjob-busybox-container
image: busybox
imagePullPolicy: IfNotPresent
command: ['sh', '-c']
args: ['echo "start cronjob";sleep 30; echo "cronjob end"']
主要配置:
① batch/v1beta1 是当前 CronJob 的 apiVersion。
② 指明当前资源的类型为 CronJob。
③ schedule 指定什么时候运行 Job,其格式与 Linux cron 一致。这里 */1 * * * * 的含义是每一分钟启动一次。
④ jobTemplate 定义 Job 的模板,格式与前面 Job 一致。
- 创建
[root@master manifests]# kubectl apply -f mycronjob-busybox.yaml
- 查看cronjob
[root@master manifests]# kubectl get cronjob
NAME SCHEDULE SUSPEND ACTIVE LAST SCHEDULE AGE
mycronjob-busybox */1 * * * * False 0 <none> 15s
- 查看job
[root@master ~]# kubectl get job
NAME COMPLETIONS DURATION AGE
mycronjob-busybox-1613910780 1/1 31s 3m17s
mycronjob-busybox-1613910960 0/1 13s 13s
- 查看pods
[root@master ~]# kubectl get pods
NAME READY STATUS RESTARTS AGE
mycronjob-busybox-1613910780-7jfcj 0/1 Completed 0 4m49s
mycronjob-busybox-1613910960-x78bv 0/1 Completed 0 105s
mycronjob-busybox-1613911020-xsmd2 0/1 Completed 0 45s
- 查看日志
[root@master ~]# kubectl logs -f mycronjob-busybox-1613910780-7jfcj
start cronjob
cronjob end
- 删除cronjob
[root@master ~]# kubectl delete cronjob mycronjob-busybox
cronjob.batch "mycronjob-busybox" deleted
更多推荐
已为社区贡献36条内容
所有评论(0)