このトピックでは、コンテナ内の時間がコンテナ環境の時間と一致するように、コンテナのタイムゾーンを設定する方法について説明します。これにより、タイムゾーンエラーによって発生する時間的不整合や不正確さを防ぐことができます。
設定例
使用するタイムゾーン設定をインポートするためのConfigMapを作成します。
たとえば、上海のタイムゾーン設定をインポートするConfigMapを作成するには、次のコマンドを実行します。他のタイムゾーン設定をインポートする場合は、次のコマンドの/usr/share/zoneinfo/Asia/Shanghaiファイルを
/usr/share/zoneinfo/
ディレクトリ内のファイルに置き換えます。kubectl create configmap tz --from-file=/usr/share/zoneinfo/Asia/Shanghai
タイムゾーンを設定するために使用されるアプリケーションを作成します。
kubectl apply -f set-timezone.yaml
次のコードは、set-timezone.yamlの例を示しています。
apiVersion: apps/v1 kind: Deployment metadata: name: timezone labels: app: test spec: replicas: 1 selector: matchLabels: app: nginx template: metadata: name: timezone labels: app: nginx alibabacloud.com/eci: "true" spec: containers: - name: timezone image: registry.cn-shanghai.aliyuncs.com/eci_open/nginx:1.14.2 volumeMounts: - name: tz mountPath: /etc/localtime # マウントパス subPath: Shanghai # ConfigMapの設定値でパラメータ値を置き換えます。 volumes: - name: tz configMap: # ConfigMapをマウントします。 name: tz
結果の確認
コンテナにログインし、コンテナのタイムゾーンが設定されているかどうかを確認します。
ポッドに関する情報をクエリします。
kubectl get pod
出力例:
NAME READY STATUS RESTARTS AGE timezone-77cc64c57d-h59n8 1/1 Running 0 6
コンテナにアクセスします。
次のコードは、サンプルコマンドを示しています。<pod-name>を実際のポッド名に置き換えます。
kubectl exec -it <pod-name> -- sh
コンテナのタイムゾーンをクエリします。
date -R
返された時間が設定したタイムゾーンと一致する場合は、設定が有効です。出力例:
Mon, 19 Feb 2024 17:24:00 +0800