Openshift CronJob 未针对特定时间表启动

Openshift CronJob not starting for specific time schedule

我目前正在尝试在 Openshift 中创建一个每天凌晨 3 点开始的 CronJob。使用具有步长值(例如“0 */1 * * *”)的计划创建 CronJob 工作正常并且作业正确启动,但是当使用特定计划创建 CronJob 时,例如“0 3 * * *”或“0 3 */1 * *",CronJob 根本不会启动。

我检查了监控部分的时间戳,时间戳显示在与 CronJob 计划使用的相同时区。

关于如何 solve/work 解决此问题或 CronJob 是否可能使用与日志中显示的时区设置不同的时区设置的任何想法?

我正在使用 openshift v3.9.102 和 kubernetes v1.9.1+a0ce1bc657。

我的 CronJob 配置:

apiVersion: batch/v1beta1
kind: CronJob
metadata:
  name: update-prices
spec:
  schedule: "0 3 * * *"
  successfulJobsHistoryLimit: 1
  failedJobsHistoryLimit: 1
  jobTemplate:
    spec:
      template:
        metadata:
          labels:
            parent: "cronjobpcurl"
        spec:
          containers:
            - name: curljob
              image: curlimages/curl:latest
              command: ["curl", "--insecure", "https://www.example.com"]
              imagePullPolicy: Always
          restartPolicy: Never

根据the documentation for CronJobs

All cron job schedule times are based on the timezone of the master where the job is initiated.

因此,您可能首先要检查的是您的 OpenShift 主节点的时区。

然后,检查您的 cronjob 是否完全 运行("LAST SCHEDULE",这里是 运行 14 秒前):

$ oc get cronjob
NAME            SCHEDULE     SUSPEND   ACTIVE   LAST SCHEDULE   AGE
my-cronjob      0 19 * * *   False     0        14s             3m

您还可以使用 oc describe cronjob my-cronjob 查看事件和 CronJob 上次的时间 运行。另外,它还会在出现错误时告诉您:

$ oc describe cronjob my-cronjob
[..]
Last Schedule Time:  Thu, 30 Apr 2020 19:00:00 +0200
Active Jobs:         <none>
Events:
  Type    Reason            Age   From                Message
  ----    ------            ----  ----                -------
  Normal  SuccessfulCreate  80s   cronjob-controller  Created job my-cronjob-1588273680
  Normal  SawCompletedJob   70s   cronjob-controller  Saw completed job: my-cronjob-1588273680

如果您在事件中看不到任何内容,请查看 OpenShift Controller 日志,您应该会看到如下内容:

controller.go:597] quota admission added evaluator for: {batch jobs}
event.go:221] Event(v1.ObjectReference{Kind:"CronJob", Namespace:"myproject", Name:"my-cronjob", UID:"8369a749-8b15-11ea-807e-080027e8770f", APIVersion:"batch/v1beta1", ResourceVersion:"3736", FieldPath:""}): type: 'Normal' reason: 'SuccessfulCreate' Created job my-cronjob-1588273680
controller.go:597] quota admission added evaluator for: {batch jobs}
event.go:221] Event(v1.ObjectReference{Kind:"Job", Namespace:"myproject", Name:"my-cronjob-1588273680", UID:"e9a3d2c5-8b15-11ea-807e-080027e8770f", APIVersion:"batch/v1", ResourceVersion:"3837", FieldPath:""}): type: 'Normal' reason: 'SuccessfulCreate' Created pod: my-cronjob-1588273680-q2tdc
[..]