需求背景
我们经常会用一些诸如emqx,nats等第三方中间件,这些中间件往往默认时区就是UTC时区,这其实也没关系,但是打印出来的日志,就会与我们的上海时区差8小时,为了解决这个问题,我的简单解决办法,就是把服务器的时区通过可读的方式挂载进去。
操作步骤
1、把服务器的时区设置成上海时区。ubuntu18系统时区设置方法如下:
timedatectl set-timezone Asia/Shanghai
2、修改emqx的StatefulSet.yaml 。注意挂载服务器的/etc/localtime到容器中,一定要设置readOnly: true,避免被误修改服务器的时区
# Source: emqx/templates/statefulset.yaml apiVersion: apps/v1 kind: StatefulSet metadata: labels: app: lzw-emqx name: lzw-emqx spec: serviceName: lzw-emqx replicas: 1 updateStrategy: type: RollingUpdate selector: matchLabels: app: lzw-emqx template: metadata: labels: app: lzw-emqx spec: containers: - image: emqx/emqx:4.2.4-alpine-amd64 imagePullPolicy: IfNotPresent name: lzw-emqx envFrom: - configMapRef: name: lzw-emqx volumeMounts: - name: lzw-emqx-log mountPath: /opt/emqx/log - name: sfere-time-zone mountPath: /etc/localtime readOnly: true readinessProbe: httpGet: path: /status port: 8081 initialDelaySeconds: 15 periodSeconds: 2 restartPolicy: Always volumes: - name: lzw-emqx-log emptyDir: {} - name: sfere-time-zone hostPath: path: /etc/localtime