Kubernetes上のpodにTimezoneの設定

はじめに

KubernetesのpodのTimezoneがバラバラ(UTC, JTC)に設定されていたため、統一するための方法を調査したので記載する。

環境

envフィールドを用いたTimezoneの設定

stackoverflow.com

上記を参考に、Deploymetではenvフィールドを使ってTimezoneの設定できる。

例として、Asia/Tokyo のTimezoneをyamlに設定して確認する。

$ cat > deployment-tz.yaml << EOF
apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx-deployment
spec:
  replicas: 1
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: nginx:latest
        ports:
        - containerPort: 80
        env:
        - name: TZ
          value: Asia/Tokyo
EOF
$ kubectl apply  -f deployment-tz.yaml 

$ kubectl exec -it deployment.apps/nginx-deployment -- date
Mon Apr 15 11:46:22 JST 2024

Timezoneが設定されていることを確認した。

補足:k8tzの使用

github.com

こちらのhelm chartでtimezoneを設定できるみたいだが、helm chartをインストール後、podがデプロイできないバグ?があった。そのため利用は断念した。

補足

github.com

k8tzを使えば、一括の設定もできるようである。