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