Kubernetes CronJobs -不要在分钟的顶部开始

t40tm48m  于 2022-12-26  发布在  Kubernetes
关注(0)|答案(1)|浏览(144)

我有几个(有时候有很多)k8s cron作业,每个作业的时间表如下

*/5 * * * *  # Every five minutes
*/1 * * * *  # Every minute
*/1 * * * *
*/2 * * * *  # Every two minutes
...

我的问题是k8s似乎都是在一分钟内启动的,所以可能会有大量的作业同时运行,每个作业只需要〈10秒运行,所以理想情况下,我希望能够将它们分布在一分钟的跨度内,即延迟它们的启动。
考虑到k8s没有基于秒的调度表达式,有什么想法吗?

mctunoxg

mctunoxg1#

你不能启动一个指示秒数的作业。你能做的是用睡眠来延迟每个作业。但是cronjobs的pod会一起启动,但是你可以用这种方式来分配作业的负载。

apiVersion: batch/v1
kind: CronJob
metadata:
  name: myminutlyCronjob
spec:
  schedule: "1 * * * *"
  jobTemplate:
    spec:
      template:
        spec:
          containers:
          - name: mycronjob
            image: myjobImage
            imagePullPolicy: IfNotPresent
            command: ["/bin/sh", "-c"]
            args:
            - sleep 10;
              mycronjobStartCommand;

          restartPolicy: OnFailure

希望这对你有帮助。

相关问题