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
posted @   打工人,打工魂  阅读(186)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
点击右上角即可分享
微信分享提示