我在 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并且不支持更改时区。