目前用 k8s 管理着一些业务容器(用的 Docker),因为有计时类的需求所以时间和时区一定要同步,时区的问题已经解决,在 dockerfile 里 RUN 创建 /etc/localtime 的软连接即可,但是时间的问题一直没解决,求 v 站的大神们,有什么好的解决方案吗?
能想到的解决方案是使用 ntp 来同步,为了控制镜像的大小,几个包都是基于 debianslim 制作,默认没有 ntp,没有 systemd,只有 service,service 没法设置开启自动启动,手动安装 systemd 的话会提示无法运行,所以现在是安装好了 ntp,但是只能在容器启动时开启,比如在 dockerfile 里启动:
CMD service ntp start
or
ENTRYPOINT service ntp start
但是如果想在这之上再运行其他进行,比如我 docker run 后面跟上 bash,用 CMD 的话原来的 ntp 启动命令会被覆盖,镜像可以 run 但是 ntp 没起来;用 ENTRYPOINT 的话 ntp 可以启动但是很快就退出了,请问有什么办法可以既跑 ntp service 又跑自己的进程?当然我知道这不太符合容器的标准 同时也注意到一个现象,以前 dockerfile 里用 ENTRYPOINT 的镜像,在 k8s 里通过 deployment 创建时,deployment 里定义的 commond 和 args 会覆盖掉 ENTRYPOINT,运行 k8s 里定义的内容,这个是为什么呢?
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.