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
相關文章
相關標籤/搜索