kubernetes 在kubernates上控制cron作业

mnemlml8  于 2023-11-17  发布在  Kubernetes
关注(0)|答案(1)|浏览(107)

我在kubernetes中有一个作业,通常需要2分钟,在某些情况下会持续20分钟。我宁愿每5分钟运行一次,但我不能运行多个作业,没有并行性。我如何协调运行?当然我可以每20分钟运行一次,但我需要更频繁地运行它。
一个解决方案是从shell脚本运行它,但我需要在20分钟后杀死它,这太多了;我们有kubernets。
是否有一种方法可以智能地协调运行?(策略可能会有所不同,但这是另一回事。)

dced5bon

dced5bon1#

使用cron作业并将concurrencyPolicy设置为Forbid
Forbid:CronJob不允许并发运行;如果到了运行新作业的时间,而上一个作业尚未完成,CronJob将跳过新作业的运行。

apiVersion: batch/v1
kind: CronJob
metadata:
  name: hello
spec:
  schedule: "*/5 * * * *"
  concurrencyPolicy: Forbid
  jobTemplate:
    spec:
      template:
        spec:
          containers:
          - name: hello
            image: busybox:1.28
            imagePullPolicy: IfNotPresent
            command:
            - /bin/sh
            - -c
            - date; echo Hello from the Kubernetes cluster
          restartPolicy: OnFailure

字符串

相关问题