在自己的数据中心托管的 kubernetes 中的 pod 中的日期和时间

在自己的数据中心托管的 kubernetes 中的 pod 中的日期和时间

我在 kubernetes 集群中遇到了日期和时间问题。我的主机时间使用 ntp 同步。虽然我在配置集群后已经同步了它。现在,我的集群中创建的所有 pod 都会有错误的时区。我发现问题出在 docker 本身。由于我使用的是 EXSi 上的 CentOS 7 VM,所以 docker 容器似乎采用的是 exsi 主机而不是 centos 的 UTC 时区?有没有办法解决这个问题,即生成的新 pod 将采用 CentOS 时区而不是 EXSi 主机时区?我可以使用 TZ env,但对于某些 docker 基础映像(如 alpine),似乎需要 tzdate 包。所以我不想为某些可以开箱即用的应用程序重建 docker,比如 fluentd 等。有办法修复它吗?

谢谢

答案1

据我所知,VMWware ESX/ESXi 主机设置客户虚拟机 (VM) 来与主机(或虚拟机管理程序)同步时间。

假设 NTP 在 ESXi 主机上运行,​​则 CentOS VM 上的时钟也必须同步。

容器中的时钟与主机相同因为它是由内核控制的。在这种情况下,主机是 CentOS VM。因此容器的时钟也应同步。

但是时区由操作系统层控制,因此容器中的时区可能会有所不同。您可以挂载时区文件来解决这个问题。

现在,我的集群内创建的所有 pod 都具有错误的时区。

据我了解,这正是您发现的问题。

ESXi 5.5 及更高版本用途默认为 UTC并且不支持更改时区。

相关内容