kubernetes 中 pod 和主机之间的日期和时间同步

Sus*_*tam 9 datetime kubernetes kubernetes-pod

我在 kubernetes 集群中遇到日期和时间问题。使用 kubeadm 在数据中心设置集群。我的主机服务器时间是使用 NTP 同步的,尽管我在配置集群后已同步它。现在,在我的集群中创建的所有 Pod 都会有错误的时间。所以原因似乎是docker采用了UTC时区。对于临时解决方案,我将卷挂载 /etc/localtime 与我们创建的 pod 中的主机一起使用,但这对于我使用 helm 存储库中的 helm 安装的应用程序似乎不可行。有什么办法可以解决这个问题吗?我不希望每个 Pod 都在正确的时间安装卷。有什么方法可以让docker从主机获取时区。

仅供参考,k8s 集群是在 CentOS 7 上设置的。它们是在 EXSi 上创建的虚拟机。谢谢

Cro*_*rou 6

它没有坏。它按设计工作。

\n\n

容器中的时钟与主机上的时钟相同,因为它由该机器的内核控制。

\n\n

时区由操作系统层控制,因此容器内部可能会有所不同。\n解决方法是使用特定时区配置和主机路径卷来设置特定时区。

\n\n
apiVersion: v1\nkind: Pod\nmetadata:\n  name: busybox-sleep\nspec:\n  containers:\n  - name: busybox\n    image: busybox\n    args:\n    - sleep\n    - "1000000"\n    volumeMounts:\n    - name: tz-config\n      mountPath: /etc/localtime\n  volumes:\n    - name: tz-config\n      hostPath:\n        path: /usr/share/zoneinfo/Europe/Prague\n        type: File\n
Run Code Online (Sandbox Code Playgroud)\n\n

因为您使用的是 helm,所以您应该检查您正在使用的映像的文档,并查找可以更改的时区变量,以便在部署时将其放入您的value.yaml或 use--set选项中。

\n\n

我建议阅读Kubernetes 容器时区管理

\n