KubenetesのCronJobのtimezoneを設定する

Kubernetes の CronJob のタイムゾーンに関しては、デフォルトではすべて UTC でスケジューリングされます。 タイムゾーンの設定を明示的にしないと、cron のスケジュールは UTC で解釈されて実行されます。

CronJob のタイムゾーンの設定方法

Kubernetes 1.24 以降では、CronJob に timeZone フィールドを設定できます。このフィールドが指定されていなければ、UTC となります。

spec:
  schedule: "0 3 * * *"
  timeZone: "Asia/Tokyo"

対応バージョンの確認

timeZone フィールドは Kubernetes 1.24 以降で正式にサポートされています。

それ以前のバージョンでは timeZone は無視されます(設定しても意味がない)。

Kubernetes クラスターのバージョン確認:

# kubectl version

Client Version: v1.31.1
Kustomize Version: v5.4.2
Server Version: v1.31.6