运维人

如何将pod中的container时区更改为同一时区的城市或UTC时区偏移

问题:

在创建pod container后发现里面的时区是UTC,对于国内习惯还是CST时区比较易读;那如何解决这种问题嘛?暂时想到的两种办法:

[root@linux-node1 ~]# kubectl exec flask-app-nginx-66b56f556c-zb84s date -n flask-app-extions-stage
Mon Jul 14 07:32:52 UTC 2018
[root@linux-node1 ~]# date
Mon Jul 14 15:32:52 CST 2018
  • 直接修改镜像的时间设置,好处是应用部署时无需特殊设置,但是需要手动从新构建Docker镜像
  • 部署应用时,单独读取主机的"/etc/localtime",无需修改镜像,但是每个应用都要单独设置。

解决:

为了快速,简单的解决此问题,先使用第二种方法;yaml文件中映射主机的"/etc/localtime"文件, 添加yaml配置:

......
......
    spec:
      containers:
      - name: nginx
        image: nginx:latest
        imagePullPolicy: IfNotPresent
        ports:
        - containerPort: 80
        volumeMounts:
          - name: nginx-conf
            mountPath: "/etc/nginx/nginx.conf"
            subPath: nginx.conf
          - name: host-time
            mountPath: /etc/localtime
      volumes:
      - name: nginx-conf
        configMap:
          name: nginx-conf
      - name: host-time
        hostPath:
          path: /usr/share/zoneinfo/Asia/Shanghai
......
......   

[root@linux-node1 flask_app_nginx]# kubectl apply -f flask_app_nginx_deploy.yaml 

[root@linux-node1 flask_app_nginx]# kubectl exec flask-app-nginx-f4d9759b4-xq4rk date -n flask-app-extions-stage
Mon Jul 14 15:50:29 CST 2018
[root@linux-node1 flask_app_nginx]# date
Mon Jul 14 15:50:29 CST 2018      

# 以上,就完成了pod container的时区修改问题...

其实还有一种方法就是将 /usr/share/zoneinfo/Asia/Shanghai 这个文件做成之前我挂载nginx配置文件那样通过ConfigMap的形式挂载.

    分享到:
码字很辛苦,转载请注明来自运维人《如何将pod中的container时区更改为同一时区的城市或UTC时区偏移》

评论