POD与NODE不一致
这种情况有三种方案:
- 在dockerFile中配置:
RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
RUN echo 'Asia/Shanghai' >/etc/timezone
- 通过PodPreset配置(需要先启用PodPreset):
apiVersion: settings.k8s.io/v1alpha1
kind: PodPreset
metadata:
name: tz-env
namespace: unicode-pay
spec:
selector:
matchLabels:
env:
- name: TZ
value: Asia/Shanghai
- 通过deployment设置:
volumeMounts:
- mountPath: /etc/localtime
name: date-config
readOnly: true
.........
volumes:
- hostPath:
path: /etc/localtime
name: date-config
CronJob与Node不一致:
这个比较麻烦,需要改kubelet然后重启:
首先,进入目录/etc/kubernetes/manifests并将里面的四个文件etcd.yaml、kube-apiserver.yaml 、kube-controller-manager.yaml、kube-scheduler.yaml添加volume映射:
volumeMounts:
- mountPath: /etc/localtime
name: date-config
readOnly: true
.........
volumes:
- hostPath:
path: /etc/localtime
name: date-config
然后通过systemctl restart kubelet.service重启完毕即可。
Java与POD不一致:
通过上述方式设置后若遇到POD时区已经正常,然而Javalog输出时区不一致时需要添加TZ变量来指定:
env:
- name: TZ
value: Asia/Shanghai
亲测~