【问题标题】:Do multiple pods in Kubernetes pull the same imageKubernetes 中的多个 Pod 是否拉取同一个镜像
【发布时间】:2021-12-02 19:37:36
【问题描述】:

我们需要在 AKS 集群中扩展 pod。

有时我们需要加速,以至于需要多个额外的节点。

我们的 docker 镜像要拉取 20GB 大。
(是的,我知道它变大的方式,但由于是一个较旧的应用程序,不可能减小大小。)

但我想知道如果我们在 1 个新节点上启动 5 个新 pod,它们是否都 5 个在启动时开始拉取 20GB 映像?由于图像未缓存。

如果他们这样做了,有没有办法防止这种情况发生?

我更喜欢让 4 个 pod 等待 pod 1 下载图像,然后再下载 5 次。

【问题讨论】:

  • 我的期望是,如果您有多个 pod 在同一个节点上运行同一个图像,它们会共享一个图像副本。 (“不要在自定义镜像上使用 ...:latest 标签,因为 Kubernetes 会看到它已经有一个带有该标签的本地镜像并重用它。”)

标签: docker kubernetes azure-aks


【解决方案1】:

图像缓存在节点上,以加速同一节点上新创建的 Pod。

防止这种情况的一种非常简单的方法是首先为每个节点启动一个 pod,然后将其扩展,以便容器运行时可以重用之前提取的图像。

【讨论】:

    【解决方案2】:

    但我想知道我们是否在 1 个新节点上启动 5 个新 pod,它们都是 5 启动时开始拉取20GB的镜像?由于图像不 缓存。

    图像缓存在 Node 上,它们可能不会开始每次都拉取图像。

    如果他们这样做了,有没有办法防止这种情况发生?

    如果您不想缓存并且每次都想提取图像,您可以在 YAML 配置中使用 imagepullpolicy : always

    如果你想让它更快,你可以先运行 1 个 pod,然后使用命令或 HPA 扩展 pod

    【讨论】:

      猜你喜欢
      • 2023-03-23
      • 2018-08-09
      • 2018-04-13
      • 2021-11-13
      • 1970-01-01
      • 1970-01-01
      • 2018-09-06
      • 1970-01-01
      相关资源
      最近更新 更多