在K8S里启动一个容器,该容器的设置的时区是UTC0,但是对于很多人而言,其主机环境并不在UTC0。例如中国客户在UTC8。如果不把容器的时区和主机主机设置为一致,则在查找日志等时候将非常不方便,也容易造成误解。

 

1.挂载服务器的时间文件

  当然,pod内部需要有/etc/localtime这个文件,否则pod会启动失败

apiVersion: v1
kind: Pod
metadata:
  name: nginx-pod
  namespace: default
  labels: 
    app: my-pod
     
spec:
  containers:
  - name: my-pod
    image: nginx
    volumeMounts:
      - name: host-time
        mountPath: /etc/localtime
        readOnly: true
  volumes:
    - name: host-time
      hostPath: 
        path: /etc/localtime

 

2.传递变量

  这种比较方便,只需要修改yaml文件就可以

apiVersion: v1
kind: Pod
metadata:
  name: pod-env-tz
spec:
  containers:
  - name: ngx-time
    image: nginx:latest
    env:
      - name: TZ
        value: Asia/Shanghai

 

3.制作docker镜像时添加

# 拷贝到当前目录
cp /usr/share/zoneinfo/Asia/Shanghai ./localtime
vim timezone
Asia/Shanghai
# 修改dockerfile

FROM nginx

MAINTAINER zexiong.li@dena.com
... ... 
ADD localtime /etc/localtime          # 添加
ADD timezone /etc/timezone         # 添加
... ...

作者:小家电维修

 

相见有时,后会无期。