導語:最近k8s測試環境一直有一個問題。定時任務時區不對,但是進入容器date -R是沒問題的。在node節點上手動跑jar程序,定時任務可以觸發,在該節點上運作pod 無法觸發定時任務。
嘗試挂載volome /etc/localtime 無法解決
volumeMounts:
- name: config
mountPath: /etc/localtime
readOnly: true
volumes:
- name: config
hostPath:
path: /etc/localtime
嘗試添加env 無法解決
env:
- name: TZ
value: Asia/Shanghai
後面嘗試在建構容器的dockerfile時加入一條 解決了這個問題
# 設定時區
echo 'RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo "Asia/Shanghai" > /etc/timezone ' >> ./Dockerfile
原因是/etc/localtime是用來描述本機時間,而 /etc/timezone是用來描述本機所屬的時區。猜測由于pod裡沒有/etc/timezone導緻定時任務無法運作。