镜像拉取节省 90% 以上,快手基于 Dragonfly 的超大规模分发实践

这篇具有很好参考价值的文章主要介绍了镜像拉取节省 90% 以上,快手基于 Dragonfly 的超大规模分发实践。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

01 挑战

快手容器云平台旨在为快手不断增长、不断变化和多样化的业务,提供基于容器化部署的超大规模基础设施服务。为了实现这一目标,快手工程师需要解决弹性、稳定性、效率和无服务器架构等挑战,在这些挑战中,镜像分发的稳定性和效率也是最棘手的问题之一。

解决方案

为了让快手容器云平台的镜像分发更加稳定和高效,快手容器云技术团队携手阿里云、蚂蚁集团在龙蜥社区适配,优化落地解决方案。事实证明,Dragonfly 及其子项目 Nydus 是最合适的解决方案,该方案能够与现有系统很好地兼容,在现有能力基础上平滑过渡,同时也为服务交付带来了大幅的效率提升。

效果

Dragonfly 上线后,整个集群通过 P2P 组建分发网,所有节点帮助中心化 Harbor 缓解网络带宽压力。Harbor 的网络带宽压力平均缓解 70% 以上,峰值压力缓解 80% 以上,镜像分发系统变得更加稳定、可靠、高效,系统能够同时支持更多数量的镜像并发拉取请求,尤其是在应对 Daemonset 部署和关键、大批量实例业务服务更新的场景中,高并发镜像拉取仓库不再是瓶颈。

使用项目

Dragonfly:https://github.com/dragonflyoss/Dragonfly2

Nydus:https://github.com/dragonflyoss/image-service

containerd:https://github.com/containerd/containerd

Harbor:https://github.com/goharbor/harbor

02 相关数据

峰值缓解 80% 以上 镜像拉取时间节省 90% 以上 POD 实例服务耗时节省 50%

03 为每月 10 亿用户提供稳定性和性能支持

“在快手,Dragonfly 有效解决了海量文件分发问题”

——吴宏斌 快手综合运营平台负责人

快手创建于 2011 年,是中国第一个短视频平台,每月为全球 10 亿用户提供服务,其中也有 1.8 亿多用户在海外,其全球足迹已迅速扩展至拉丁美洲、中东和东南亚。在快手,任何用户都可以通过短视频和直播来记录和分享他们的生活经历,展示他们的才华。快手与内容创作者、企业紧密合作,主要从事内容社区和社交平台的运营,提供直播服务、在线营销服务、电子商务、娱乐、在线知识共享和其他增值服务。随着快手业务的快速增长,数以万计的关键服务和中间件运行在快手容器云平台上,镜像分发系统的稳定性和效率变得越来越重要。

对于快手的镜像分发系统升级改造来说,最大的挑战不仅仅是镜像仓库峰值压力的缓解和镜像拉取加速,如何让服务分发无缝衔接平滑过渡,尽可能让业务无感、不受系统变化影响同样重要。快手容器云平台工程师通过调研发现,Nydus 与 Dragonfly 系统深度集成,同时也支持传统 OCI 镜像,能够以兼容友好的方式提供快速、稳定、安全、便捷的容器镜像访问,非常容易地就能适配容器云平台已有工作,实现业务从已有镜像使用方式平滑过渡到新镜像格式。平台唯一要做的就是将容器运行引擎从 Docker 切换到 containerd,因为 containerd 与 Dragonlfly 的集成体验更好。在快手工程师的努力下,大规模节点的容器引擎平稳切换轻而易举,containerd 和 Dragonfly 均已被快速全面采用。

稳定高效的镜像分发

对于稳定、高效的镜像分发,Dragonfly 给出了完美的答案。在快手,有许多重要的服务需要在短短几分钟内扩容到成千上万个实例,例如快手的 818 购物节或双 11 活动的业务扩容需求。这种缩放需要数千 GB 带宽才能直接从镜像仓库下载。在另外一些场景中,预测模型和搜索业务需要定期更新模型参数文件和索引文件来保证推荐效果和检索效果,这在技术上意味着必须立即将数百 GB 的文件分发到每个相关实例。

快手工程师在所有容器云主机部署了 Dragonfly 组件:Dfdaemon 和 Dfget,通过 P2P 算法拉取文件。同时,在每个 AZ 部署了独立的超级节点集群,为 Dfget 设计了 Schedule Server,选择合适的超级节点来避免跨 AZ 或者跨 Region 的流量。更重要的是,工程师基于 Dragonfly 独特的片管理 P2P 算法实现了数据流 P2P 传输,降低了磁盘负载。得益于 Dragonfly,数以万计的实例可以同时拉取镜像或下载文件,而不会增加时间成本和磁盘负载。

镜像拉取节省 90% 以上,快手基于 Dragonfly 的超大规模分发实践,云栖号技术分享,网络,云计算,阿里云

“先进的技术就是第一生产力,快手容器云平台拥抱 Dragonfly 和 Nydus 后,应用交付效率大幅提升,给业务创新带来了更多可能。”

——孙寅 快手容器云负责人

由于拉取镜像是容器生命周期中比较耗时的步骤之一,为了进一步加速镜像分发和服务启动,工程师们又继续启用了 Nydus 镜像懒加载项目。快手有许多服务有数千个 Pod 实例,其中一些有超过 20G 或更大的镜像,当这些服务升级或扩容时,巨大的镜像和启动时间会严重减慢服务启动。快手需要一种能够显著提高服务启动速度的解决方案,特别是因为某些服务将其训练模型放入镜像中,这对于服务启动来说可能是灾难性的。

由于快手在 Dragonfly 项目上的应用和实施,工程师们很早就了解到 Nydus 项目。Nydus 是一个强大的开源文件系统解决方案,可以为云原生工作负载,例如容器镜像,构建高效的镜像分发系统。

得益于 Nydus 全新的镜像设计,每个 Pod 可以在几秒钟内完成启动,这样可以大量节省服务部署实例的启动时间,让应用尽快为用户提供服务。对于每个集群节点,支持Nydus的工作并不复杂,通过容器引擎无损切换(指无需 POD 驱逐)、配置变更即可顺利完成。

在实践中,Harbor 作为快手容器云平台的全局镜像仓库中心,仍然扮演着非常重要的角色,具体来说,我们做了以下事情:

1.容器引擎从 Docker 无损切换到 containerd;

2.在镜像构建阶段支持使用 Nydus 标准构建镜像;

3.在集群节点间,使用 Dragonfly 的 P2P 技术支持镜像分发;

4.containerd通过配置Dragonfly 的 P2P 代理拉取镜像,并使用 Nydus 镜像启动容器。

当然,以上所有的变动,都继续兼容当前已有的 OCI 镜像格式以及系统已有功能。

镜像拉取节省 90% 以上,快手基于 Dragonfly 的超大规模分发实践,云栖号技术分享,网络,云计算,阿里云

综上所述,Dragonfly 和 Nydus 一起为快手容器云平台提供了处理镜像分发问题的最佳解决方案。数以万计的快手服务大大减少了部署时间,业务线研发工程师在更新服务时也更加轻松容易。

Dragonfly 和 Nydus 都是来自 CNCF 的优秀开源项目,更进一步说,快手也将继续对该项目进行更多投入,并与社区展开深入合作,使它变得更加强大和可持续。云原生技术是基础设施领域的一场革命,尤其是在弹性和无服务器方面,我们相信 Dragonfly 一定会在云原生生态中扮演重要角色。

相关链接:

云原生 SIG 主页:https://openanolis.cn/sig/cloud-native

参考资料

【1】https://www.cncf.io/case-studies/kuaishou-technology/

【2】d7y+nydus快手案例

【3】https://github.com/containerd/containerd

【4】https://github.com/dragonflyoss/Dragonfly2

【5】https://d7y.io/

【6】https://github.com/dragonflyoss/image-service

【7】https://nydus.dev/

【8】https://github.com/goharbor/harbor

原文链接

本文为阿里云原创内容,未经允许不得转载。文章来源地址https://www.toymoban.com/news/detail-727421.html

到了这里,关于镜像拉取节省 90% 以上,快手基于 Dragonfly 的超大规模分发实践的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • NLP预训练模型超大规模探索

      总共从四方面来进行比较。 第一个方面, 高层次方法(自监督的预训练方法)对比 ,总共三种方式。 语言模型式 ,就是 GPT-2 那种方式,从左到右预测; BERT-style 式 ,就是像 BERT 一样将一部分给破坏掉,然后还原出来; Deshuffling (顺序还原)式 ,就是将文本打乱,然后

    2024年02月11日
    浏览(37)
  • 菜鸟笔记-4.配置镜像源【pycharm最新版(23.2.5及以上)方法】

    为什么要配置镜像源: 因为Python的包管理工具pip一般从PyPI(Python Package Index)下载安装包,但是PyPI位于国外,下载包的速度比较慢,为了加快python安装包在国内的安装速度,需要在python中配置镜像源;另外,由于PyPI上的包可能会存在版本不一致的情况,因此配置镜像源可以

    2024年02月04日
    浏览(55)
  • Gartner最新报告,分析超大规模边缘解决方案

    当下,酝酿能量的超级边缘。 最近,我们在谈视频化狂飙、谈AIGC颠覆、谈算力动能不足,很少谈及边缘。但“边缘”恰恰与这一切相关,且越发密不可分,它是未来技术发展的极大影响因子。 “到2025年,超过70%的组织将为其⾄少⼀个边缘计算系统,部署超⼤规模云边缘解决

    2023年04月10日
    浏览(33)
  • Docker -- 镜像仓库(搭建私有镜像仓库、向镜像仓库推送镜像、从镜像仓库拉取镜像)

    搭建镜像仓库可以基于Docker官方提供的DockerRegistry来实现。 官网地址 Docker 官方的 Docker Registry 是一个基础版本的 Docker 镜像仓库,具备仓库管理的完整功能,但是没有图形化界面。 搭建方式比较简单,命令如下: 命令中挂载了一个数据卷 registry-data 到容器内的 /var/lib/regist

    2024年02月04日
    浏览(79)
  • Docker拉取镜像过慢

    本质:拉取镜像时,从国外的镜像源进行拉取 解决方法: 【没有daemon.json文件就创建/etc/docker/daemon.json这个文件】 第一步:进入/etc/docker路径 第二步:编辑daemon.json文件,更换国内镜像源 一般进行到这一步就可以成功拉取镜像了 第三步:重启docker,拉取镜像 结果:还是很慢

    2024年02月12日
    浏览(46)
  • Docker镜像的拉取和推送(阿里云镜像仓库)

    简介: 阿里云的容器镜像服务个人版是不要钱的,个人可以免费创建3个命名空间和最多可创建300个免费的镜像仓库供以使用,平时可以使用这项服务对个人的镜像进行管理,就可以不使用国外的DockerHub来对镜像进行管理了,大大节省了拉取和推送的时间,本文将介绍如何把

    2024年01月23日
    浏览(42)
  • Docker镜像拉取超时解决

    目录 问题 增加镜像平台 重新读取配置,重启docker  Docker拉取镜像时,经常出现无法访问或者长时间下载不完的情况。是因为Docker的默认的镜像服务器Docker Hub部署在海外,因此要解决这个问题只需要将镜像服务器地址指定为国内的地址即可。 docker info  

    2024年02月11日
    浏览(43)
  • 3.玩客云docker拉取openwrt镜像

    1.设置网络 输入查看ip 的命令 ifconfig 和 ip addr 两个命令差不多的取一个就行 把网卡混杂模式打开 sudo ip link set (eth0 这里你自己网卡的名称)promisc on ##以下是我的网卡名称,每台设备可能不一样,要注意!!!! sudo ip link set eth0 promisc on 2.创建 docker 网卡 docker network create

    2024年02月16日
    浏览(98)
  • docker pull 拉取镜像报错

    报错信息:Error response from daemon: toomanyrequests: You have reached your pull rate limit. You may increase the limit by authenticating and upgrading: https://www.docker.com/increase-rate-limit 简单理解就是拉取镜像失败,外部原因:拉取次数上线,或者该镜像收费,你可以检查下你用的镜像源地址是国内的还是国

    2024年02月03日
    浏览(51)
  • Docker 拉取镜像超时问题解决方法

    centos7下安装好docker 配置了阿里云的镜像加速器 打算从dockerhub上拉取官方的nginx镜像,结果超时了  网上的解决方案是配置dns vi /etc/resolv.conf  但是,很多网友说配置完后要重启网卡,结果我重启网卡后,配置又变回原来的了,拉取结果还是超时 我重新修改配置后,没有重启

    2024年02月11日
    浏览(56)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包