通过环境变量修改pod时间

容器
问题描述

kubernetes部署的pod与北京时间相差8小时。

问题原因

在kubernetes集群中运行的容器默认会使用UTC时间,即与北京时间会有8小时时差。而有些分布式系统对于时间极为敏感,不允许出现时间误差。出现这种情况往往是因为使用dockerhub等仓库上的镜像导致,如果用户自己制作镜像会修改时间。

解决方案

通过环境变量的方式修改时间。

部署nginx容器用于测试

1.准备nginx deployment文件

apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    app: nginx
  name: nginx-deployment
spec:
  replicas: 1
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - image: nginx
        name: nginx

2.部署nginx

kubectl apply -f xxx.yaml

3.查看pod所在宿主机,并查看宿主机时间

kubectl get pod -owide |grep nginx

登陆pod所在宿主机查看时间

ssh hostip
date

4.查看pod时间

kubectl exec -it -n default <podname> -c nginx -- date

5.修改nginx deployment

apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    app: nginx
  name: nginx-deployment
spec:
  replicas: 1
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - image: nginx
        name: nginx
        env:
          - name: TZ
            value: Asia/Shanghai

6.重新部署nginx,并查看pod时间

kubectl apply -f xxx.yaml
kubectl exec -it -n default <podname> -c nginx -- date
0
0
0
0
关于作者

文章

0

获赞

0

收藏

0

所属团队号:
相关资源
如何构建企业级云原生计算基础设施
云原生大数据是大数据平台新一代架构和运行形态。通过升级云原生架构,可以为大数据在弹性、多租户、敏捷开发、降本增效、安全合规、容灾和资源调度等方向上带来优势。本议题将依托字节跳动最佳实践,围绕云原生大数据解决方案进行展开。
相关产品
评论
未登录
看完啦,登录分享一下感受吧~
暂无评论