Refer_Url: https://kubernetes.io/docs/concepts/workloads/controllers/cron-jobs/

一个 CronJob 对象类似于 crontab (cron table)文件中的一行, 它根据指定的预定计划周期性地运行一个 Job,格式可以参考 Cron 。

注意: 在预定计划中,问号(?)和星号(*)的意义是相同的,表示给定字段的取值是任意可用值。

注意: 在 Kubernetes 1.4 版本引入了 ScheduledJob 资源,但从 1.5 版本开始改成了 CronJob。

典型的用法如下所示:

  • 在给定的时间点调度 Job 运行
  • 创建周期性运行的 Job,例如:数据库备份、发送邮件。

JOB_TEMPLATE:

apiVersion: batch/v1beta1
kind: CronJob
metadata:
  name: xxxxxx  #名称
  namespace: xxxx #命名空间
spec:
  concurrencyPolicy: Replace   #1  并发策略
  failedJobsHistoryLimit: 1     #2 失败任务历史显示个数
  jobTemplate:
    metadata: {}
    spec:
      activeDeadlineSeconds: 600
      backoffLimit: 6
      completions: 1
      parallelism: 1
      template:
        metadata: {}
        spec:
          containers:
          - command:
            - curl
            - '-i'
            - >-
              www.baidu.com
            env:
            - name: MYPATH
              value: /usr/local
            image: registry.cn-shanghai.aliyuncs.com/centos:1.4.1
            imagePullPolicy: IfNotPresent
            name: xxxxx  #应用名称
            ports:
            - containerPort: 80
              protocol: TCP
            resources:
              requests:
                cpu: 250m
                memory: 512Mi
            terminationMessagePath: /dev/termination-log
            terminationMessagePolicy: File
          dnsPolicy: ClusterFirst
          restartPolicy: Never    #3 重启策略
          schedulerName: default-scheduler
          securityContext: {}
          terminationGracePeriodSeconds: 30
  schedule: '*/1 * * * *'     #表达式 每分钟执行一次
  startingDeadlineSeconds: 60   #4 job存活时间 默认不设置为永久
  successfulJobsHistoryLimit: 1  #5 成功job历史显示个数
  suspend: true               #6 true 挂起 不运行  false 及运行

 并发策略 concurrencyPolicy

spec.concurrencyPolicy 字段也是可选的。它指定了如何处理被 Cron Job 创建的 Job 的并发执行。只允许指定下面策略中的一种:

Allow(默认):允许并发运行 Job
Forbid:禁止并发运行,如果前一个还没有完成,则直接跳过下一个
Replace:取消当前正在运行的 Job,用一个新的来替换

Logo

开源、云原生的融合云平台

更多推荐