pod时间时区与node主机保持一致

发现问题

在安装Kubernetes集群的过程中,我并没有注意到pod的时间问题。直到在Tomcat上部署应用后,我发现pod中的时间与Node上的时间不同步。


分析问题

解决这个问题基本上可以有两种思路:

  • 直接修改镜像的时间设置。好处是应用部署时无需做特殊设置,但是需要手动构建Docker镜像

  • 部署应用时,单独读取主机的/etc/localtime文件。好处是创建pod时同步时区,无需修改镜像,但是每个应用都要单独设置


解决问题

  • 修改镜像的时间
FROM ubuntu:16.04

MAINTAINER xx@example

RUN ln -sf /usr/share/zoneinfo/Asia/ShangHai /etc/localtime

RUN echo "Asia/Shanghai" > /etc/timezone
FROM alpine3.6

MAINTAINER xx@example.cn

RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.ustc.edu.cn/g' /etc/apk/repositories

RUN apk add --no-cache tzdata \
    && ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \
    && echo "Asia/Shanghai" > /etc/timezone \
    &&rm -rf /var/cache/apk/* /tmp/* /var/tmp/* $HOME/.cache 
  • pod挂载宿主机时间
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: myweb
spec:
  replicas: 2
  template:
    metadata:
      labels:
        app: myweb
    spec:
      containers:
      - name: myweb
        image: harbor/tomcat:8.5-jre8
        volumeMounts:
        - name: host-time
          mountPath: /etc/localtime
        ports:
        - containerPort: 80
      volumes:
      - name: host-time
        hostPath:
          path: /etc/localtime

在这里插入图片描述


验证

创建deployment后,在pod内和node主机上,分别执行date命令,检查时间是否同步。

PodID# kubectl exec cdnplus-core-cdn-7dc6f77fdd-w5z78  -n test date

Fri Apr 23 11:36:05 CST 2021


# date

Fri Apr 23 11:36:07 CST 2021
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值