容器在主机的内核上运行,并获得时钟,但时区不是来自内核,而是来自用户空间。在大多数情况下,默认使用协调世界时 (UTC)。 时区的不一致,会带来很多困扰。即使代码与时区无关,但容器日志与系统日志时间相关联排查问题也会让人头疼。一些应用程序使用机器的时区作为默认时区,并希望用户设置时区。当集群中容器的时区不一致时,管理会很不容易。,k8tz开源地址: https://github.com/k8tz/k8tz,k8tz
是一个 Kubernetes 准入控制器和一个将时区注入 Pod 的 CLI 工具。可以用作手动工具来自动转换 Deployment 和 Pod 可以作为准入控制器安装并使用注释来完全自动化创建 Pod 的过程。,k8tz
可以使用hostPath
的方式,或者将emptyDir
注入initContainer
并用 TZif(时区信息格式) 文件填充卷。然后将emptyDir
挂载到 Pod 每个容器的 /etc/localtime
和 /usr/share/zoneinfo
。为了确保所需的时区有效,它向所有容器添加了 TZ
环境变量。,官方提供了三种策略:hostpath、initcontainer、annotations,这里主要讲annotations方式,查看pod时区时一定要在安装k8tz之前操作,安装k8tz时会默认添加时区给新创建的pod自动添加k8tz.io/timezone