すべてのプロダクト
Search
ドキュメントセンター

Elastic Container Instance:コンテナのタイムゾーンの設定

最終更新日:Jan 14, 2025

このトピックでは、コンテナ内の時間がコンテナ環境の時間と一致するように、コンテナのタイムゾーンを設定する方法について説明します。これにより、タイムゾーンエラーによって発生する時間的不整合や不正確さを防ぐことができます。

設定例

  1. 使用するタイムゾーン設定をインポートするためのConfigMapを作成します。

    たとえば、上海のタイムゾーン設定をインポートするConfigMapを作成するには、次のコマンドを実行します。他のタイムゾーン設定をインポートする場合は、次のコマンドの/usr/share/zoneinfo/Asia/Shanghaiファイルを/usr/share/zoneinfo/ディレクトリ内のファイルに置き換えます。

    kubectl create configmap tz --from-file=/usr/share/zoneinfo/Asia/Shanghai
  2. タイムゾーンを設定するために使用されるアプリケーションを作成します。

    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  

結果の確認

コンテナにログインし、コンテナのタイムゾーンが設定されているかどうかを確認します。

  1. ポッドに関する情報をクエリします。

    kubectl get pod

    出力例:

    NAME                        READY   STATUS    RESTARTS   AGE
    timezone-77cc64c57d-h59n8   1/1     Running   0          6
  2. コンテナにアクセスします。

    次のコードは、サンプルコマンドを示しています。<pod-name>を実際のポッド名に置き換えます。

    kubectl exec -it <pod-name> -- sh
  3. コンテナのタイムゾーンをクエリします。

    date -R

    返された時間が設定したタイムゾーンと一致する場合は、設定が有効です。出力例:

    Mon, 19 Feb 2024 17:24:00 +0800