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
[..]
我目前正在尝试在 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
[..]