Kubernetes的CronJob对象

CronJob说白了就是用来管理Job对象的控制器,
经过jobTemplate管理Job对象,定时执行,最终实现咱们的cron功能api

示例bash

apiVersion: batch/v1beta1
kind: CronJob
metadata:
  name: hello
spec:
  schedule: "*/1 * * * *"
  jobTemplate:
    spec:
      template:
        spec:
          containers:
          - name: hello
            image: busybox
            args:
            - /bin/sh
            - -c
            - date; echo light weight baby !
          restartPolicy: OnFailure

执行建立,看到rest

# kubectl get cronjob
NAME SCHEDULE SUSPEND ACTIVE LAST SCHEDULE AGE
hello */1 * * * * False 1 13s 7m

再查看job,会发现cronjob建立了几个job对象code

# kubectl get job
NAME DESIRED SUCCESSFUL AGE
hello-1571022240 1 1 2m
hello-1571022300 1 1 1m
hello-1571022360 1 1 50s

由于定时任务的特殊性,可能上一个Job没执行完,新的就产生了,能够经过spec.concurrencyPolicy字段来定义处理策略对象

  • concurrencyPolicy=Allow,默认状况,Job能够同时存在
  • concurrencyPolicy=Forbid,不会建立新的Pod,该建立周期被跳过
  • concurrencyPolicy=Replace,新生产的Job会替换旧的没有执行完的Job
相关文章
相关标签/搜索