Kubernetes 运行 cronjob 在错误的时间
Kubernetes run cronjob in wrong time
我有一个时间表:
schedule: "0 10,14,18 * * *"
,我想 运行 这份工作 10:00 上午,2:00pm,6:00pm。
因为我位于 UTC+8 时区,所以这个 cronjob 看起来不像我预期的 运行。
要为时区添加配置吗?
From Kubernetes documentation:
Note: All CronJob schedule: times are based on the timezone of the master where the job is initiated.
master部署在香港应该没问题。 GCP 在中国没有区域(参见 here)
您可以考虑在 Aws 上部署 Kubernetes。 aws在中国北京和中国宁夏都有区域(见here)
或者可能在 Azure 上(参见 here)
通过上述设置,schedule: "0 10,14,18 * * *"
应该可以工作
如果您使用的是托管 GCP K8s,则时间为 UTC
对于 vanilla kubernetes,您可以修复静态 pod。添加区块
volumeMounts:
- name: localtime
mountPath: /etc/localtime
readOnly: true
volumes:
- hostPath:
path: /etc/localtime
name: localtime
这使得 kube-controller-manager 运行 与主机处于同一时区。
在v1.22中,有一种方法可以做到。
设置类似 CRON_TZ=Asia/Tehran 0 0 * * *
的内容作为 .spec.schedule 值
In addition, the CronJob schedule supports timezone handling, you can specify the timezone by adding "CRON_TZ=" at the beginning of the CronJob schedule, and it is recommended to always set CRON_TZ.
我有一个时间表:
schedule: "0 10,14,18 * * *"
,我想 运行 这份工作 10:00 上午,2:00pm,6:00pm。
因为我位于 UTC+8 时区,所以这个 cronjob 看起来不像我预期的 运行。
要为时区添加配置吗?
From Kubernetes documentation:
Note: All CronJob schedule: times are based on the timezone of the master where the job is initiated.
master部署在香港应该没问题。 GCP 在中国没有区域(参见 here)
您可以考虑在 Aws 上部署 Kubernetes。 aws在中国北京和中国宁夏都有区域(见here)
或者可能在 Azure 上(参见 here)
通过上述设置,schedule: "0 10,14,18 * * *"
应该可以工作
如果您使用的是托管 GCP K8s,则时间为 UTC
对于 vanilla kubernetes,您可以修复静态 pod。添加区块
volumeMounts: - name: localtime mountPath: /etc/localtime readOnly: true volumes: - hostPath: path: /etc/localtime name: localtime
这使得 kube-controller-manager 运行 与主机处于同一时区。
在v1.22中,有一种方法可以做到。
设置类似 CRON_TZ=Asia/Tehran 0 0 * * *
的内容作为 .spec.schedule 值
In addition, the CronJob schedule supports timezone handling, you can specify the timezone by adding "CRON_TZ=" at the beginning of the CronJob schedule, and it is recommended to always set CRON_TZ.