使用瞭望塔将 docker 镜像从私有注册表拉取到多个 VPS 需要太长时间

问题描述 投票:0回答:1

我们有大约 100 台 VPS 机器,我们使用 containsrrr/watchtower 来提取更新的 docker 镜像(registry.mydomain.com/image:latest)。我们的私有注册表位于一台专用服务器上,通常需要长达 2 小时才能将映像传播到所有计算机上。图像实际大小为 4.42GB。我认为如果每个瞭望塔同时尝试拉取图像,网络就会过载。

您对使用 Dragonfly (P2P) text 之类的东西有何看法?我现在需要一个非 kubernetes 解决方案。或者可能是带有复制的 docker 镜像的负载均衡器/smartdns。

docker docker-registry docker-watchtower
1个回答
0
投票

添加 Dragonfly 或任何其他解决方案都会增加更多问题和复杂性。

使用 1 Gbit/s 线路或理论上 125 MiB/s 进行快速数学计算。

440 GiB/125 MiB/s 数据将在 3604.48 秒或约 1 小时内传输。因此,1 Gbit/s 到 800 MiB/s 之间的速度对我来说听起来不错。在我看来,500 MiB/s 有点低。

  1. 确保新旧镜像之间的差异为 4.4 GiB,通常最后一层(应用程序所在的位置)更改更频繁且更小。因此,在总计和压缩后,您应该看到 1/10 的数据流量。
  2. 4.4 GiB 未经压缩,因此传输中的数据应该更小。
  3. 你可以使用 s3 (minio) 这将有助于扩展,因为 blob 将直接从 s3 提供服务。
  4. 跨 2-3 个节点使用 HA 注册表。港口可以做到这一点。
© www.soinside.com 2019 - 2024. All rights reserved.