k8s docker 时区同步

网关一直报token无效问题,看了日志,提示token准入时间超前,立即想到了容器的时区问题。检查了配置,都有。环境变量有设置,dockerfile也写了,还是不行。开始搜索…

解决方案:
1、非alpine镜像
dockerfile

ENV TZ=Asia/Shanghai
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone

2、alpine镜像(我的情况openjdk:8-jdk-alpine)
原因:alpine版本没有zoneinfo文件夹,需要使用tzdata加载,或手工写入。

dockerfile

ENV TZ=Asia/Shanghai
RUN apk add -U tzdata && ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone && apk del tzdata

如果内网k8s,复制宿主机文件

ENV TZ=Asia/Shanghai
COPY /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
RUN echo $TZ > /etc/timezone

或挂载目录

-v /etc/localtime:/etc/localtime -v /etc/timezone:/etc/timezone

你可能感兴趣的:(运维,docker,kubernetes,运维)