All Products
Search
Document Center

Elastic Container Instance:Configure a time zone for a container

Last Updated:Mar 18, 2024

This topic describes how to configure a time zone for a container to ensure that the time in the container is consistent with the time in the container environment. This prevents time inconsistency and inaccuracy caused by time zone errors.

Configuration example

  1. Create a ConfigMap to import the time zone settings that you want to use.

    For example, if you want to create a ConfigMap to import the time zone settings of Shanghai, run the following command. If you want to import other time zone settings, replace the /usr/share/zoneinfo/Asia/Shanghai file in the following command by using the file in the /usr/share/zoneinfo/ directory.

    kubectl create configmap tz --from-file=/usr/share/zoneinfo/Asia/Shanghai
  2. Create an application that is used to configure the time zone.

    kubectl apply -f set-timezone.yaml

    The following code provides an example of 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   # The mount path.
                subPath: Shanghai       # Replace the parameter value by using the setting in your ConfigMap.
          volumes:
            - name: tz
              configMap:   # Mount the ConfigMap.
                name: tz  

Verify the result

Log on to the container and check whether the time zone of the container is configured.

  1. Query information about the pod.

    kubectl get pod

    Example output:

    NAME                        READY   STATUS    RESTARTS   AGE
    timezone-77cc64c57d-h59n8   1/1     Running   0          6
  2. Access the container.

    The following code provides a sample command. Replace <pod-name> with the actual name of your pod.

    kubectl exec -it <pod-name> -- sh
  3. Query the time zone of the container.

    date -R

    If the returned time is consistent with the time zone that you configured, the configuration is in effect. Example output:

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