文档首页> 云容器引擎 CCE> 最佳实践> 容器> 容器与节点时区同步
更新时间:2022-09-14 GMT+08:00

容器与节点时区同步

场景一:容器与节点时区同步

  1. 登录CCE控制台。
  2. 在创建工作负载基本信息页面,开启“时区同步”,即容器与节点使用相同时区。

    图1 开启时区同步

  3. 登录节点进入容器查询容器时区是否与节点保持一致。

    date -R

    命令行终端显示如下信息:

    Tue, 04 Jun 2019 15::08:47  +0800

    docker ps -a|grep test

    命令行终端显示如下信息:

    docker exec -it oedd74c66bdb /bin/sh

    date -R

    命令行终端显示如下信息:

    Tue, 04 Jun 2019 15:09:20  +0800

场景二:容器、容器日志与节点时区同步

Java应用打印的日志时间和通过date -R方式获取的容器标准时间相差8小时。

  1. 登录CCE控制台。
  2. 在创建工作负载基本信息页面,开启“时区同步”,即容器与节点使用相同时区。

    图2 开启时区同步

  3. 登录节点进入容器,修改catalina.sh脚本。

    cd /usr/local/tomcat/bin

    vi catalina.sh

    若无法在容器中执行vi命令,可以直接执行4,也可以执行vi命令,在脚本中添加 -Duser.timezone=GMT+08,如下图所示:

  4. 将脚本先从容器内拷贝至节点,在脚本中添加-Duser.timezone=GMT+08后,从节点拷贝到容器中。

    容器内的文件拷贝至宿主机:

    docker cp mycontainer: /usr/local/tomcat/bin/catalina.sh /home/catalina.sh

    宿主机中的文件拷贝至容器内:

    docker cp /home/catalina.sh mycontainer:/ usr/local/tomcat/bin/catalina.sh

  5. 重启容器。

    docker restart container_id

  6. 重启后查看日志中的时区是否与节点同一时区。

    查看方法:单击工作负载名称进入工作负载详情页,单击右上角的“日志”按钮可查看日志详情。日志约需要等待5分钟查看。

场景三:工作负载与节点时区同步

  • 方法一:制作容器镜像时,将时区设置为CST。
  • 方法二:若不希望修改容器,可在CCE控制台创建工作负载时,将本机的“/etc/localtime”目录挂载到容器的“/etc/localtime”目录下。

    示例如下:

    kind: Deployment
    apiVersion: apps/v1
    metadata:
      name: test
      namespace: default
    spec:
      replicas: 2
      selector:
        matchLabels:
          app: test
      template:
        metadata:
          labels:
            app: test
        spec:
          volumes:
            - name: vol-162979628557461404
              hostPath:
                path: /etc/localtime
                type: ''
          containers:
            - name: container-0
              image: 'nginx:alpine'
              volumeMounts:
                - name: vol-162979628557461404
                  readOnly: true
                  mountPath: /etc/localtime
              imagePullPolicy: IfNotPresent
          imagePullSecrets:
            - name: default-secret