容器与节点时区同步 本节介绍云容器引擎的最佳实践:容器与节点时区同步。 背景说明 使用Dockerfile构建容器镜像时,若未指定时区配置,那么构建的容器有可能会使用UTC时间。在云容器引擎中使用该容器镜像构建工作负载时就有可能出现容器实例与云容器引擎的节点时间不一致,相差8小时的现象。 云容器引擎的所有节点统一中国CST时间(UTC+8), 登录节点执行date R指令进行查看: [root@0000000gwcgp0q8ads ~] date R Sat, 06 Apr 2024 18:37:16 +0800 验证Pod实例的工作容器当前时间可以使用kubectl指令,例如查看default命名空间下,名为kubiamannual的pod工作容器时间: 使用kubectl exec指令可查看pod的工作负载容器当前的时间: [root@0000000gwcgp0q8ads ~] kubectl exec kubiamanual n default date R Sat, 06 Apr 2024 10:37:18 +0000 工作容器的时间戳时区为+0000,代表使用的是标准UTC时间, 中国CST时间比标准UTC时间多8个小时 解决该问题有两种方法: 1、构建容器镜像时配置时区 2、通过云容器引擎控制台进行配置 构建容器镜像时配置时区 以Dockerfile方式构建镜像为例,在镜像的Dockerfile中增加以下语句: RUN cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime 通过云容器引擎控制台进行配置 云容器控制台可以通过数据卷的方式,将节点的/etc/localtime文件挂载到Pod的工作容器实例中,以此实现时区信息同步,具体操作步骤如下: 1、登录云容器引擎控制台 2、进入【集群】【工作负载】界面,找到待处理的pod名称,点击【全量替换】按钮 全量替换 3、增加一个主机目录类型的数据卷,设置主机路径为/etc/localtime 数据卷 4、为工作容器增加挂载点 挂载点 提交更改后,容器实例会重启,使用与节点相同的时区配置; 通过云容器引擎创建新的工作负载时,可以使用的操作方法:以数据卷的方式将节点的/etc/localtime挂载到容器实例的/etc/localtime,实现节点与容器实例时间同步。