Kubernetes中CronJob时区问题
先前的博客: Kubernetes中Cron任务的一些使用中介绍了cron任务的基本使用. 但是在使用过程中发现, 定时在早晨八点的任务, 会在下午被执行, 因为相差正好8个小时, 猜想很可能是时区问题
文档
遇到这个问题我直接去找文档来看了: CronJob.
这个文档的更新来来回回持续了很久, 文档总在纠结定时任务的执行以什么为参照, 下面的内容是2020-3月份以后更新的一版, 我不贴之前的错误版本了, 只贴一个正确的版本:
1 | Caution: |
中文翻译的版本一直没人更新, 我也帮忙更新了一下:
1 | 警告: |
解决方案
既然得知了定时任务的调度与control-manager
的容器时区相关, 那么, 考虑修改该容器的时区就可以了.
涉及到维护性的问题, 直接基于原始镜像构建新的镜像.
1 | FROM <dockerhub>/fengyuhao/kube-controller-manager:v1.17.0 |
1 | docker build . -t <dockerhub>/fengyuhao/kube-controller-manager:hk-v1.17.0 |
而后针对kuberetes的master机器, 更改control-manager配置, kubernetes会自动应用新的配置
1 | # 文件位置:/etc/kubernetes/manifests/kube-controller-manager.yaml |
请各位自己替换对应的dockerhub以及镜像地址.
可以用kubectl -n kube-system get pods
进行确认控制器的更新.