繁体   English   中英

Docker K8s 优化镜像以减少加载时间

[英]Docker K8s optimize images to reduce load time

我们有很多 docker 镜像需要上传到 k8s,它可以工作,但是当我们启动一个新节点时,这个过程可能需要很多时间。

我们尝试更改图像以使用“多阶段”构建,但是这个过程仍然需要很多时间,而且我们没有看到新节点的启动时间发生重大变化。

现在我们尝试以下操作:(但是我们不确定我们会看到多大的影响......)

  1. 尝试(就像我们可以)使用相同的泊坞窗图像from ,例如,所有的图像使用完全相同的版本(3.11),而不是使用版本的其中一些利用的高山3.10有的3.10.1有的3.11等,这将阻止docker对已经兑现的层的重用机制......

  2. 减少层数,将RUN命令组合为一个而不是多个。(我们需要为许多 docker 文件执行此操作...),不确定 docker 机制将如何帮助实现我们的目标

所有这些改变使用相同版本和减少层的过程可能需要很多时间,我们是在浪费时间还是在那里,或者这是可以减少加载时间的东西? 还有其他想法可以帮助我们吗?

我们有很多基于 Golang、NodeJS、java 等的 docker 镜像。

所以你在正确的轨道上

  • 使用最小层
  • 重用层
  • 使用相同的标签来缓存图层
  • 使用高山或苗条的图像
  • 使用多阶段构建

我认为你不能进一步缩小尺寸。 试试docker squash但这不会有太大帮助。

那么如何更快地启动节点呢?

  • 是否可以在其中烘焙包含所需图像层的节点图像?
  • 是否可以在您的节点旁边设置一个 docker 注册表? 以便在没有网络延迟的情况下更快地拉取图像
  • 是否可以在运行时将库保留在映像之外并挂载库? (例如,如果您的代码是 nodejs 代码,请将 npm 保留在容器之外并在运行时挂载 npms 目录)
  • k8s 可以运行除 docker 镜像之外的其他镜像。 cri-o 您可以构建 cri-o 图像吗? 它们很轻。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM