无法确定是否需要启动作业:错过启动时间太多 (> 100)。设置或减少 .spec.startingDeadlineSeconds 或检查时钟偏差

bad*_*key 8 cron openshift kubernetes devops

我已经创建了一个 cron 作业并将其推送到部署,但是当我看到它在 OpenShift 中运行时,我收到以下错误消息:

无法确定是否需要启动作业:错过启动时间太多 (> 100)。设置或减少 .spec.startingDeadlineSeconds 或检查时钟偏差。

根据我的理解,作业无法运行。但我不明白为什么它失败了。为什么没有记录在某处?- 或者如果是,我在哪里可以找到它?

CronJob 控制器将继续尝试根据最近的计划开始作业,但一直失败,显然它已经这样做了 100 次以上。

我检查了我的 cron 作业的语法,它没有给出任何错误。此外,如果有任何语法消息,我什至不允许推送。

有谁知道怎么了?

我的 Cron 工作:

apiVersion: batch/v1beta1
kind: CronJob
metadata:
  name: my-cjob
  labels:
    job-name: my-cjob
spec:
  schedule: "*/5 * * * *" 
  jobTemplate:
    # activeDeadlineSeconds: 180 # 3 min <<- should this help and why?
      spec:
        template:         
          metadata:
            name: my-cjob
            labels:
              job-name: my-cjob
          spec:
            containers:
            - name: my-cjob
              image: my-image-name
            restartPolicy: OnFailure
Run Code Online (Sandbox Code Playgroud)

还是我应该使用startingDeadlineSeconds?任何遇到此错误消息并找到解决方案的人?

根据评论更新

运行时,kubectl get cronjob我得到以下信息:

NAME           SCHEDULE      SUSPEND   ACTIVE    LAST SCHEDULE   AGE
my-cjob        */5 * * * *   False     0         <none>          2d
Run Code Online (Sandbox Code Playgroud)

运行时,kubectl logs my-cjob我得到以下信息:

Error from server (NotFound): pods "my-cjob" not found
Run Code Online (Sandbox Code Playgroud)

运行时,kubectl describe cronjob my-cjob我得到以下信息:

Error from server (NotFound): the server could not find the requested resource
Run Code Online (Sandbox Code Playgroud)

运行时,kubectl logs <cronjob-pod-name>我得到了很多行代码......对我来说很难理解和整理......

跑步时kubectl describe pod <cronjob-pod-name>我也得到了很多,但这更容易排序。有什么具体的吗?

跑步kubectl get events我得到了很多,但我认为这是相关的:

LAST SEEN   FIRST SEEN   COUNT     NAME                                            KIND                    SUBOBJECT                                 TYPE      REASON              SOURCE                                      MESSAGE
1h          1h           2         xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx             Pod                     spec.containers{apiproxy}                 Warning   Unhealthy           kubelet, xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx   Liveness probe failed: Get http://xxxx/xxxx: dial tcp xxxx:8080: connect: connection refused
Run Code Online (Sandbox Code Playgroud)

bad*_*key 6

将startingDeadlineSeconds 设置为180 可以解决问题+ 删除spec.template.metadata.labels。