同步pod时区,与node主机保持一致
程序员文章站
2022-11-15 08:31:27
问题描述
在安装Kubernetes集群的过程中并没有注意到pod的时间问题,直到在Tomcat上部署应用后发现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来获取