根据文档(https://kubernetes.io/docs/concepts/workloads/controllers/cron-jobs/)我可以在 k8s 中创建 cron 作业并指定时区,例如:"CRON_TZ=UTC 0 23 * * *"
我的部署文件是:
apiVersion: batch/v1
kind: CronJob
metadata:
name: scheduler
spec:
schedule: "CRON_TZ=UTC 0 23 * * *"
...
Run Code Online (Sandbox Code Playgroud)
在部署期间我收到错误:
CronJob“调度程序”无效:spec.schedule:无效值:“CRON_TZ=UTC 0 23 * * *”:预期正好 5 个字段,发现 6:CRON_TZ=UTC 0 23 * * *
Cron 在没有完美时区的情况下工作 ( schedule: "0 23 * * *")
集群版本是:Kubernetes 1.21.2-do.2-digitalocean。
怎么了?
“我只想每 10 秒在 Kubernetes 中运行一次 cronjob。为此,命令是什么?”
我有一个集群,其中包含一个计划每 5 分钟运行一次的 Cronjob。
我们最近遇到了一个导致停机并需要手动恢复集群的问题。虽然现在恢复正常,但这个特定的 cronjob 无法运行,并出现以下错误:
Cannot determine if job needs to be started: Too many missed start time (> 100). Set or decrease .spec.startingDeadlineSeconds or check clock skew.
Run Code Online (Sandbox Code Playgroud)
我知道 Cronjob 在集群关闭时“错过”了一些预定的作业,并且这已经超过了一个阈值,在这个阈值下不会再安排更多的作业。
如何重置错过的开始时间数量并重新安排这些作业(不安排所有错过的作业突然运行?)