码迷,mamicode.com
首页 > 其他好文 > 详细

【喜大普奔】JFrog支持 P2P下载功能

时间:2020-11-04 18:09:41      阅读:11      评论:0      收藏:0      [点我收藏+]

标签:内容   docker   启动   速度   拉取   uber   arm   环境   实例   

  • 需求背景
    在大规模Docker 容器运行时环境中,如果镜像实例数 较多,需要同时大规模,多地更新镜像,比如大型电商平台需要更新所有容器的镜像时,Docker镜像中心往往成为性能瓶颈,这个瓶颈往往来自于镜像中心的网络出口,比如镜像中心所在主机有万兆网卡,则网络流量会被限制在 1000MB(注意是大 Byte),通常这个网卡会被多个应用共享使用,所以流量有很多损耗,导致无法满足 Docker 镜像实时分发的需求。即使将 Docker 镜像中心进行异地分布式部署,也存在瞬时的并发拉取流量难以满足,从而导致 Docker 拉取镜像失败,Pod 无法启动。
    2.功能介绍
    为了解决这个问题,JFrog Artifactory E+ 7.9 版本支持了 P2P 功能。之前的镜像拉取方式如下:
    技术图片
    支持 P2P 之后,镜像的分发方式如下:
    技术图片
    JFrog P2P 功能能够让用户从 Peer 网络中直接获取制品,Peer 节点存储了种子制品和缓存过的制品,从而大大的减少 Artifactory 的下载压力。
    JFrog P2P 模块的架构:
    • Tracker: 是一个Artifactory 的服务,用来广播和追踪可用的种子制品在哪个 peers 和服务器。
    • Peer:?是一个独有的JFrog应用程序,部署在 peers 节点的主机上,和其他 peers 节点通信。Peer 节点连接 Tracker 去下载制品,并且声明种子的可用性给Tracker.
    • P2P Swarm:?是一个peers 节点的逻辑集合,它形成了分布式的网络,用于给集群内的 Docker 客户端共享制品。
    • Client:?客户端软件用户和 peer 交互,通常是 Docker 或者 HTTP client.
  • JFrog P2P 下载的工作流:

    • Peer 安装在连接到 Artifactory 的主机上,例如 Kubernetes work node。
    • Peer 节点连接到 Artifactory Edge ,然后注册在 Trakcer 上,作为种子服务器提供服务。所有的下载都通过SSL加密,使用Artifactory的链式认证进行统一鉴权.Peer 节点监听客户端或者其他 Peer 节点的下载请求。
    • 当 Peer 节点下载好种子文件后,会自动广播给各个 Tracker自己的内容,Tracker 会存储这些种子文件的信息。?
    • 当 Peer 节点监听到客户端请求时,会去 Tracker 查询哪些 Peer 节点已经缓存了该文件,Tracker 会回复 Peer 节点的请求,然后 Peer 节点开始从Peer swarm 里的这些节点去进行下载。
    • 当文件被缓存在 Peer 节点上,这个信息会被 Tracker 发现并广播,能够别并发的被其他 peer 节点拉取。下载的过程是多线程并发的执行,因此能够打满 Peer 集群内部的网络带宽,使得下载速度比从 Artifactory 服务器下载更加快。

    3.收益
    通过 P2P 功能,用户能够极快的拉取镜像,实现业务的连续性,目前 JFrog E+版本中支持了这个功能。欢迎大家免费下载试用。

    【喜大普奔】JFrog支持 P2P下载功能

    标签:内容   docker   启动   速度   拉取   uber   arm   环境   实例   

    原文地址:https://blog.51cto.com/jfrogchina/2546504

    (0)
    (0)
       
    举报
    评论 一句话评论(0
    登录后才能评论!
    © 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
    迷上了代码!