设置容器时区
更新时间:2025-02-13
本文介绍如何为容器配置时区,以此来保证容器中的时间与所处环境的时间一致,避免时区错误导致的时间一致性和准确性等问题。
配置示例
- 创建一个ConfigMap,导入/usr/share/zoneinfo/目录下您需要的时区
 
                YAML
                
            
            1kubectl create configmap tz --from-file=/usr/share/zoneinfo/Asia/Shanghai
            - 创建配置时区的应用
 
                YAML
                
            
            1kubectl apply -f timezone-demo.yaml
            timezone-demo.yaml内容示例如下:
                YAML
                
            
            1apiVersion: apps/v1
2kind: Deployment
3metadata:
4  annotations:
5    deployment.kubernetes.io/revision: "1"
6  labels:
7    name: pod-test
8  name: pod-test
9  namespace: default
10spec:
11  replicas: 1
12  selector:
13    matchLabels:
14      name: pod-test
15  template:
16    metadata:
17      creationTimestamp: null
18      labels:
19        name: pod-test
20    spec:
21      containers:
22      - image: registry.baidubce.com/glen-centos/centos:centos7
23        imagePullPolicy: IfNotPresent
24        name: pod-test
25        resources:
26          limits:
27            cpu: 250m
28            memory: 500Mi
29          requests:
30            cpu: 250m
31            memory: 500Mi
32        terminationMessagePath: /dev/termination-log
33        terminationMessagePolicy: File
34        volumeMounts:
35        - name: tz
36          mountPath: /etc/localtime   # 挂载路径
37          subPath: Shanghai  # 请根据您的ConfigMap替换
38      dnsPolicy: Default
39      volumes:
40      - name: tz
41        configMap:   # 挂载ConfigMap
42          name: Shanghai
43      tolerations:
44      - effect: NoSchedule
45        key: virtual-kubelet.io/provider
46        operator: Equal
47        value: baidu
48      nodeSelector:
49        type: virtual-kubelet
            验证结果
- 提交上述yaml,登录到容器内,验证时区是否设置成功。命令提交前根据实际Pod名称替换
。  
                YAML
                
            
            1kubectl exec -it <pod-name> -- sh
            - 查询容器时区
 
                YAML
                
            
            1date -R
            如果返回的时间与设置的时区信息对应,则表示设置成功。返回示例如下:
                Plain Text
                
            
            1Thu, 13 Feb 2025 18:00:11 +0800
            