如果已有作业正在运行,如何防止在Kubernetes中执行Cronjob

时间:2018-10-02 18:56:52

标签: unix kubernetes

我必须在Kubernetes中部署 Cronjob ,这将每15分钟创建一个Job Pod。作业将检查服务是否准备好提供新数据。准备好此服务后,该作业将需要1个多小时才能完成其执行。问题围绕这样一个事实,即将在此期间执行其他作业。

简而言之,当已有作业正在运行时,如何防止在 Kubernetes Cronjobs 中执行作业?

1 个答案:

答案 0 :(得分:2)

CronJob资源具有一个名为concurrencyPolicy的属性,下面是一个示例:

apiVersion: batch/v1beta1
kind: CronJob
metadata:
  name: your-cron
spec:
  schedule: "*/40 8-18 * * 1-6"
  concurrencyPolicy: Forbid
  jobTemplate:
    spec:
      template:
        metadata:
          labels:
            app: your-periodic-job
        spec:
          containers:
          - name: your_container
            image: your_image
            imagePullPolicy: IfNotPresent
          restartPolicy: OnFailure