0

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

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

关于如何解决/解决此问题的任何想法,或者 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
4

1 回答 1

1

根据CronJobs 的文档

所有 cron 作业计划时间都基于启动作业的 master 的时区。

因此,您可能要检查的第一件事是您的 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
[..]
于 2020-04-30T19:18:06.140 回答