【Kubernetes】同步pod时区,与node主机保持一致

问题描述


  在安装Kubernetes集群的过程中并没有注意到pod的时间问题,直到在Tomcat上部署应用后发现pod中的时间与Node上的时间不同步,解决这个问题基本上可以有两种思路:

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

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

解决


  这里为了快速、简单的解决这个问题,先使用第二种方案,yaml文件中设置时区同步,只需要映射主机的“/etc/localtime”文件。

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,执行date命令检查时间是否同步

kubectl exec 123456-7890 date
//123456-7890是pod的id,可以通过kubectl get pod来获取

你可能感兴趣的:(☆,Ops,————,Kubernetes,kubernetes)