Rancher入门到精通-2.0 K8S容器时区自动配置-Pod Preset

默认情况下,K8S集群里管控的Pod内部时区是UTC0时,跟我们实际所在时区不一致,会导致日志记录等方面存在问题。所以需要使容器内部与宿主机(node节点)的时间保持一致。想要解该问题主要有以下几种思路。

Docker层面时区设置

第一种思路是从docker层面来完成时区设置,其有两种实现方式,分别是通过环境变量以及挂载主机文件方式来完成。以下方式均需保证当前宿主机的时区配置正确。

1、设置容器的时区环境变量

通过在容器启动时,设置环境变量TZ=Asia/Shanghai的方式来实现:

docker run --name=centos -e "TZ=Asia/Shanghai" centos

2、挂载宿主机的时区文件到容器内部

通过在容器启动时,挂载时区文件/etc/localtime为数据卷的方式来实现:

docker run --name=centos -v /etc/localtime:/etc/localtime:ro centos

另外如果是自动打包的镜像,可在dockerfile文件里定义好时区环境变量,生成新的镜像。

K8S层面时区设置

在K8S集群中,也可以参照docker的方式来设置时区。

1、设置环境变量

apiVersion: v1
kind: Pod
metadata:
  name: pod-env-tz
spec:
  containers:
  - name: mynginx
    image: nginx:latest
    imagePullPolicy: IfNotPresent
    env:
      - name: TZ
        value: Asia/Shan

猜你喜欢

转载自blog.csdn.net/wxb880114/article/details/103676720