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.

我了解到Cronjob在群集关闭时已“丢失”了许多预定的作业,并且已经超过了不能再安排任何作业的阈值。

我该如何重置错过的开始时间并重新安排这些作业(不安排所有错过的作业突然运行?)

解决方法

对于kubernetes Cronjob docs,似乎没有一种方法可以彻底解决此问题。将.spec.startingDeadlineSeconds值设置为较大的值将重新安排所有丢失事件,这些事件属于增加的窗口。

我的解决方法是仅kubectl delete cronjob x-y-z并重新创建它,即可按需工作。

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...