设为首页 收藏本站
查看: 1044|回复: 0

[经验分享] Docker(三十一)k8s cronjob 计划任务使用

[复制链接]

尚未签到

发表于 2019-2-20 11:32:55 | 显示全部楼层 |阅读模式
  基本原理其实就是,k8s 会单独启动一个pod 来专门跑任务,等任务跑完后,就把这个pod 删除
  上yaml
apiVersion: batch/v1beta1
kind: CronJob
metadata:
  name: delesindexjob
spec:
  schedule: "*/1 * * * *"
  jobTemplate:
    spec:
      template:
        spec:
          containers:
          - name: delesindexjob
            image: centos
            args:
            - /bin/sh
            - -c
            - curl -X DELETE  "ip:9200/zipkin-qa:span-`date +%F -d "-7 days"`"
            #或者把args字段去掉,用commnd字段
            # command: ["curl", "-X", "POST","--header",'hashtag-notice-header: 3509bc492a27b938ce3843d17083d31d', "http://172.17.122.118:8085/fa055/notice/hotHashTag12" ]
          restartPolicy: OnFailure
          imagePullSecrets:
          - name: qcloudregistrykey
          - name: tencenthubkey  es 数据库需要定期删除,所以我就只保留了7天的,然后调用相关接口进行删除,这里是每分钟执行一次,其实可以一天执行一次就可以
  这里有两个坑,
  1,之前用的alpine 但是发现用了curl 命令时候并不是很好穿参数,导致任务执行失败
  2,拉取镜像认证,因为是用的腾讯云,但是之前抄的官方文档,始终都是拉取失败,后来加上secrests 后就好了
  两个注意点
  1,有些任务并不能循环的时间内完成,但是同时又要执行下一个jobs,那么这个时候是需要并发执行的,这个时候需要执行并发的开关打开,默认是打开的
spec.concurrencyPolicy:并发策略,该字段也是可选的。它指定了如何处理被 Cron Job 创建的 Job 的并发执行。只允许指定下面策略中的一种:

  •   Allow(默认):允许并发运行 Job
  •   Forbid:禁止并发运行,如果前一个还没有完成,则直接跳过下一个
  •   Replace:取消当前正在运行的 Job,用一个新的来替换
  2,有些任务执行的过程比较快,同时k8s 又会把pod删除,那么pod 执行job时候输出的日志,很难看到,这个时候需要把任务挂起,这里也会有个功能开关,默认是关闭
  .spec.suspend挂起,该字段也是可选的。如果设置为 true,后续所有执行都会被挂起。它对已经开始执行的 Job 不起作用。默认值为 false
  3,查看历史执行记录
  

  • .spec.successfulJobsHistoryLimit 和 .spec.failedJobsHistoryLimit :历史限制,是可选的字段。它们指定了可以保留多少完成和失败的 Job。
    默认没有限制,所有成功和失败的 Job 都会被保留。然而,当运行一个 Cron Job 时,Job 可以很快就堆积很多,推荐设置这两个字段的值。设置限制的值为 0,相关类型的 Job 完成后将不会被保留。




运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-674843-1-1.html 上篇帖子: docker容器初探—基本概念和基础命令用法 下篇帖子: docker之基础
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表