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

Cannot determine if job needs to be started: Too many missed start time (> 100). Set or decrease .spec.startingDeadlineSeconds or check clock skew

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

Cannot determine if job needs to be started: Too many missed start time (> 100). Set or decrease .spec.startingDeadlineSeconds or check clock skew.

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

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

我已经检查了我的 cron 作业的语法,它没有给出任何错误。还有如果有什么语法信息,我连push都不行

有人知道怎么回事吗?

我的 Cron 作业:

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

或者我应该使用 startingDeadlineSeconds?有人遇到此错误消息并找到了解决方案吗?

根据评论更新

当 运行ning kubectl get cronjob 我得到以下信息:

NAME           SCHEDULE      SUSPEND   ACTIVE    LAST SCHEDULE   AGE
my-cjob        */5 * * * *   False     0         <none>          2d

当 运行ning kubectl logs my-cjob 我得到以下信息:

Error from server (NotFound): pods "my-cjob" not found

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

Error from server (NotFound): the server could not find the requested resource

当运行宁kubectl logs <cronjob-pod-name>我得到很多行代码...我很难理解和整理..

当 运行ning 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

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

我暂停了我的工作负载,然后在相当长一段时间后恢复它,并看到了同样的错误。 这不是一个错误吗,因为我在暂停和恢复之间的任何时间故意触发了暂停操作,不应计入错过的开始。