3

我有一个时间表: schedule: "0 10,14,18 * * *",我想在上午 10:00、下午 2:00、下午 6:00 运行这项工作。

由于我位于 UTC+8 时区,这个 cronjob 看起来不像我预期的那样运行。

无论如何要为时区添加配置?

4

4 回答 4

4

来自 Kubernetes 文档

注意:所有 CronJob 计划:时间基于启动作业的 master 的时区。

如果你在香港部署你的主人,你应该没问题。GCP在中国没有地区(见这里

您可以考虑在 Aws 上部署 Kubernetes。AWS 在中国北京和中国宁夏设有地区(请参阅此处

或者可能在 Azure 上(请参见此处

有了上述设置,schedule: "0 10,14,18 * * *"应该可以工作

于 2019-05-13T04:49:12.523 回答
4

如果您使用托管 GCP K8,则时间以 UTC 为单位

文档

于 2020-10-06T02:56:21.747 回答
0

对于 vanila kubernetes,您可以修复静态 pod。添加块

    卷装:
    - 名称:当地时间
      挂载路径:/etc/localtime
      只读:真
卷:
  - 主机路径:
    路径:/etc/localtime
    名称:当地时间

这使得 kube-controller-manager 与主机在同一时区运行。

于 2020-12-03T15:49:08.410 回答
0

在 v1.22 中,有一种方法可以做到这一点。

设置类似CRON_TZ=Asia/Tehran 0 0 * * *.spec.schedule 值

另外,CronJob 调度支持时区处理,您可以通过在 CronJob 调度开头添加“CRON_TZ=”来指定时区,建议始终设置 CRON_TZ。

该文档位于https://kubernetes.io/docs/concepts/workloads/controllers/cron-jobs/#:~:text=In%20addition%2C%20the%20CronJob%20schedule,the%20kube%2Dcontroller%2Dmanager

于 2021-10-24T03:23:25.383 回答