Kubernetes(十三)Job 与 CronJob

一    基本概念

相关参考

类似'linux中'-->'at任务'和'rond定时任务'用法

二    Job

典型的应用场景: jenkins '起一个任务'

yaml高级用法

(1)案例

用 Job 这个'资源对象'来创建一个任务,我们定义一个 Job 来执行一个'倒计时'的任务
apiVersion: batch/v1
kind: Job
metadata:
  name: job-demo
spec:
  template:
    spec:
      restartPolicy: Never
      containers:
      - name: counter
        image: busybox
        command:
        - "bin/sh"
        - "-c"
        - "for i in $(seq 1 10);do sleep 2 && echo $i; done"
注意1: apiVersion版本通过'explain'查询

注意2: restartPolicy'必须手动指定',因为'默认不指定'就是'Alaways'

可以看到,'Job 对象'在创建后,它的 Pod 模板'被自动加上了'一个 'controller-uid=< 一个随机字符串 >' 这样的 Label 标签,而这个 Job 对象本身,则'被自动加上了'这个 Label 对应的 Selector,从而 保证了 'Job 与它所管理的 Pod 之间'的匹配关系

而 Job 控制器之所以要使用这种'携带了 UID 的 Label',就是为了'避免不同 Job 对象'所管理的 Pod '发生重合'

我们可以看到 'Pod 变成了 Completed 状态'这是因为容器的'任务执行完成正常退出了'

思考:如果执行失败呢?

spec:
 activeDeadlineSeconds: 100

(2)细节

job执行完后,不会自动启动一个新的pod,pod和jobs'不会被自动删除'

三  CronJob

(1)基本概念

(2)时间格式

(3)案例

apiVersion: batch/v1beta1
kind: CronJob
metadata:
  name: cronjob-demo
spec:
  schedule: "*/1 * * * *"
  jobTemplate:
    spec:
      template:
        spec:
          restartPolicy: OnFailure
          containers:
          - name: hello
            image: busybox
            args:
            - "bin/sh"
            - "-c"
            - "for i in 9 8 7 6 5 4 3 2 1; do echo $i; done"

注意1: spec.schedule字段是'必须填写'的,用来指定'任务运行的周期',格式就和 crontab 一样

注意2: 另外一个字段是'spec.jobTemplate', 用来指定'需要运行的任务',格式当然和 Job 是一致的

++++++++++++++++++++  '一些字段的含义'

1) .spec.successfulJobsHistoryLimit 和 .spec.failedJobsHistoryLimit,表示'历史限制',是'可选'的字段,指定可以'保留多少完成和失败'的 Job,默认没有限制,所有成功和失败的 Job 都会被保留。

场景: 当运行一个 CronJob 时,Job 可以很快'就堆积很多',所以一般'推荐设置'这两个字段的值。如果设置限制的'值为 0',那么相关类型的 Job 完成后将'不会被保留'

(3)观察实验现象

稍微'等一会儿'查看可以发现'多了几个 Job 资源对象',这个就是因为上面我们'设置的 CronJob 资源对象',每1分钟'执行一个任务',就会'创建一个新的 Job'

这个就是 CronJob 的基本用法,一旦'不再需要 CronJob',我们可以使用 kubectl 命令'删除它'

kubectl 'delete' cronjob cronjob-demo

注意: 这将会'终止正在创建'的 Job,但是'运行中的 Job '将不会被终止,'不会删除' Job 和 它们的 Pod

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值