Cronjob 定时任务
- Job: 负责处理任务,即仅执行一次的任务,它保证批处理任务的一个或多个Pod成功结束。
- CronJob: 则就是在Job上加上了时间调度。
我们用Job这个资源对象来创建一个任务,我们定一个Job来执行一个倒计时的任务,定义YAML文件:
$ cat hello.yaml
apiVersion: batch/v1beta1
kind: CronJob
metadata:
name: hello
namespace: test
spec:
schedule: "*/5 * * * *"
jobTemplate:
spec:
template:
spec:
containers:
- name: hello
image: images.xxxxxxxx.com/test/hello:v1
restartPolicy: OnFailure
创建并查看任务状态
$ kubectl apply -f hello.yaml
cronjob.batch/hello created
$ kubectl get -n test cronjob
NAME SCHEDULE SUSPEND ACTIVE LAST SCHEDULE AGE
hello */5 * * * * False 0 4m15s 39m
#刚创建还没有活跃的工作,也没有计划任何工作
然后,每隔五分钟执行kubectl get cronjob 查看已执行完的任务,发现每五分钟则会创建一个Pod,可以使用以下命令来控制成功Pod和失败Pod个数。
.spec.successfulJobsHistoryLimit: #成功完成的作业保存多少个,默认为3
.spec.failedJobsHistoryLimit: #失败的作业保存多少个,默认为1
注:实测k8s v1.13.5上有默认值,v1.11.6则不存在
$ kubectl get -n test job
NAME COMPLETIONS DURATION AGE
hello-1567045500 1/1 2s 13m
hello-1567045800 1/1 2s 8m54s
hello-1567046100 1/1 2s 3m54s
如果不需要这个CronJob,删除即可:
$ kubectl delete -f hello.yaml
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!