k8s之crontab,job

文章算是一篇读书笔记。看张磊大佬的深入刨析kube的理解吧

-----大佬们。请收下我虔诚的仰视;

cronjob

主要用于离线业务;定时任务;
其yaml中关键词是jobTemplate,这个其实就是job的一个控制器,其创建和删除的依据就schedule中的字段定义的;
标准的unixCron的表达式:分时日月周
kubectl get jobs
kubectl get cronjob
在这里插入图片描述
贴一个书中的cronJob的例子;
在这里插入图片描述
此处指出来几个注意点:
1.concurrencyPolicy=Allow,此处意味着多个job可以同时存在;
2.concurrencyPolicy=Forbid,意味着不会创建新的pod。该创建周期被跳过;
3.concurrencyPolicy=Replace。这意味着心产生的job会替换旧的。未执行完的job
如果某一次job创建失败。这次创建会标记为miss。在制定的时间窗口内,miss的数量到达100.cronjob会停止再创建job
时间窗口可以由spec.startingDeadlineSeconds字段制定。比如starting-DeadlineSeconds=200.意味着过去200s内。如果miss数量达到100,那么这个job不会再创建;

job

贴一个简单的计算pi的job的yaml:
在这里插入图片描述
job中。设置一个podtemplate。定义image。执行command
job对象建立后。会将pod模版上自动加上controller-uid=随机字符,job对象本身被自动加上了这个Label对应的selector。保证job和管理的额 pod的匹配关系;
job 的pod模版中restartPolicy=Never
Deployment对象里。restartPolicy只允许设置为always。
如果job失败了pod会不断的尝试新建一个新的pod。我们可以在job对象中设置重试次数:spec。backoffLimit。。这个字段默认为6
重试时间10s。20s。40s。指数级别增加;
容器如果一直不完成 。不结束。可以限制pod的运行时长:spec。activeDeadlineSeconds字段;
job Controller并行作业控制
spec。aprallelism定义job在任意时间点最多可以启动多少个pod同时运行
spec。complettions定义的是job至少要完成的 pod数量;及job的最小完成数;
kubectl get job。会显示Desired的值是complet定义的最小完成数;
kubectl get pods。显示pod并行运行的pod数量;

一个pod的生命周期:
panding
containerCreating
running
completed

在这里插入图片描述

我发现其他的言语都不如这本书写的语言的解说的清晰;直接上图吧。请大佬原谅我抄袭大佬的说辞;
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值