问题描述:
在k8s中新建一个cronjob,当schedule=0 1 * * *这样一个具体的某点某分时不会在预期时间执行,但是当schedule=0 * * * *这样一个相对时间时,即某个小时执行一次,是可以在预期时间执行的。
debug:
1)猜测1,这个k8s宿主机上的时间很奇怪:
root@k8sdeploy-master:/home/name# date
Wed 15 Sep 2021 09:31:27 PM CST
root@k8sdeploy-master:/home/name# cat /etc/timezone
Asia/Shanghai
date显示的时区和timezone中不一致,进入pod也是如此,猜测时这个原因。
备注:后来查了一下,CST是中国标准时间,而不是中央标准时间,那就说明没有问题。
2)猜测2,cronjob是通过宿主机上的crontab实现的,果然在宿主机上尝试用crontab也是遇到了同样的问题。但是在另外一台crontab没有这个问题的宿主机上也有同样的问题。。。。
3)问了K8s的大牛,原来k8s scheduler的时区设置的UTC,所以我们设置cronjob的定时时间也必须按照UTC时区来设置。。。

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐