【大咖分享】AI 大模型时代,架构师有哪些机遇和挑战? 了解详情
写点什么

秒级启动万个容器,如何实现容器镜像的“加速冲刺”?

  • 2020-01-15
  • 本文字数:1925 字

    阅读完需:约 6 分钟

秒级启动万个容器,如何实现容器镜像的“加速冲刺”?

作者:袁逸凡、木环、陈显鹭


年关将至,各种年货节、秒杀商品、倒计时直播也会纷至沓来。这些业务的共同点都是流量瞬间暴增,运维部必须快速筹备大量的服务器,并在极短时间内扩容容器承接线上流量,避免系统崩溃。除了需要集群节点的快速扩容,也对应用部署速度提出更高要求。


部署启动快,常被认为是容器的核心优势之一。但是果真如此吗?本地镜像实例化成容器的时间很短,即“热启动”;而在本地无镜像情况下的“冷启动”,需要先从镜像仓库下载镜像并解压缩后才能拉起容器,受网络和磁盘性能影响较大,耗时数分钟;大规模批量冷启动甚至可能导致 Registry 因网络拥堵而无法响应。


针对冷启动的痛点,阿里云容器与存储两个团队展开合作,研发出一个全新存储引擎 DADI 加速器,将容器冷启动耗时缩短至数秒。方案沉淀自阿里集团内部大规模应用的数据访问加速经验,曾在双十一大促中为大规模容器集群扩容提供了秒级拉起能力。最终利用 DADI 加速器支持镜像按需读取和 P2P 分发,实现 3.01 秒启动 10000 个容器,完美杜绝容器冷启动的数分钟漫长等待,以及镜像仓库大规模并行分发场景下的网络拥堵。


本文将重现加速测试场景以及镜像加速的几个关键点。测试是在 1000 台 4 核 8G 的节点组成的 Kubernetes 集群中进行,阿里云容器服务 Kubernetes (ACK) 能在极短时间内扩容出 1000 台节点 worker 并加入到 Kubernetes 集群中。ACK 的此能力在应对大促,秒杀,短时流量洪峰时具有亮眼的表现。


同时针对本次测试场景,利用 Kubernetes 强大的扩展性和自定义控制器,加快在大规模集群中创建应用和删除应用的速度,保障了测试在极短时间内方便快捷的进行。


阿里云容器团队联合存储团队研发的 DADI 加速器在本次测试中启动 10000 个容器仅需 3.01 秒,10 秒内启动了近 60000 个容器。



Figure 1 - 1 万个容器的启动耗时为 3.01 秒,其中 p999 分位耗时 2.97 秒。


同时针对 1 万个容器的冷热启动进行对比,即在本地有无镜像缓存对启动时间的影响,热启动耗时 2.91 秒,其中 p999 耗时 2.56 秒



Figure 2 - 1 万个容器的冷热启动耗时对比


DADI 冷启动由于数据按需从 P2P 网络中获取,减轻了磁盘压力避免发生 IO 拥堵,因此长尾容器较少。


此外,还进行了限时摸高测试。在 10 秒的限制时间内利用 1000 台宿主机启动了 59997 个容器,在 10.06 秒时第 6 万容器启动完毕:



Figure 3 - 限时 10 秒摸高测试


冷启动的关键优化,DADI 大地加速器


注:上述图示数据,均在阿里云容器团队的容器服务 ACK 中进行。为方便获得每个容器的启动时间,采用 C/S 模式:worker 中每个容器拉起后向测试的 httpServer 上报自己状态,以 httpServer 记录的请求时间作为容器启动耗时。


一般而言,完整的容器应用镜像往往有数百 M 甚至上 G 的大小。在社区的容器 Registry 的实现中,镜像会以分层方式存储,每一层都是一个 tgz 包。当容器启动时, 容器引擎会从容器 Registry 拉取所有的层,在本地实现解压后,通过层次化文件系统构建完整的容器 rootfs。而容器启动过程中所需要的数据可能只占镜像文件中极小一部分比例。本次测试所用镜像完整大小为 894M,容器启动所需数据仅 15M,占比约 1.6%。如何能避免下载完整镜像到本地而直接获取到这 1.6%启动数据是加速容器启动的关键。


为何 DADI 加速器能为大规模容器集群扩容提供秒级拉起的能力?其核心在于“按需读取”容器运行时所需数据,避免传统容器 “下载镜像–>解压镜像–>启动容器”的启动步骤,容器启动耗时从分钟缩短至数秒。这其中包括以下三点优化工作:


  • 镜像格式优化:为了避免下载+解压造成的高时延,DADI 团队设计了一种新的镜像格式,内含索引,无需下载和解压完整镜像即可直接访问;

  • 按需 P2P 数据读取:为减轻批量扩容时对单点 Registry 带来的总体负载,DADI 利用树形 P2P 网络对进行数据分发。即少数 P2P 根节点从 Registry 获取,其他节点(宿主机)之间可相互传输数据,批量扩容时可快速分发数据到所有节点;

  • 高效的解压缩算法:DADI 提供了一种新型的压缩文件格式,可按需单独解压用户访实际问的数据,且解压时间开销可忽略不计。



Figure 4 - 容器启动流程对比


利用 DADI 方案启动容器时,仅从镜像 Registry 下载几 KB 的镜像元数据,并创建虚拟设备 Overlay Block Device 挂载到容器工作目录上, Docker 引擎会认为镜像已经加载完毕。在容器启动时所需的镜像数据则从本地缓存或者 P2P 网络的上游节点按需下载。P2P 网络可以充分缓解对 Registry 的访问压力。



Figure 5 – DADI P2P 数据分发


随着 Kubernetes 被越来越广泛地接受,阿里云容器服务 ACK 有幸支撑了很多企业级客户,此次 ACK 和 DADI 的深度整合,实现秒级启动万个容器,从容应对大规模应用扩容和发布,相关技术在未来也将成为 Serverless 容器的启动加速利器。


2020-01-15 15:034384

评论

发布
暂无评论
发现更多内容

跳板攻击原理及如何追踪定位攻击者主机(下)

郑州埃文科技

IP地址 跳板攻击 攻击溯源

艺多不压身!华为云CDN成众多企业网络支撑

路过的憨憨

助力企业服务体验升级,华为云CDN这样做

路过的憨憨

捷报频传 | Bonree ONE获2022科技赋能金融业场景金融建设突出贡献奖

博睿数据

可观测性 智能运维 博睿数据 ONE平台 荣誉奖项

一文讲清「敏捷路线图」| Liga译文

LigaAI

Scrum 产品经理 敏捷开发 软件开发 12 月 PK 榜

YMatrix 番外篇|透过镜头,那些不为人知的故事

YMatrix 超融合数据库

车联网 超融合数据库 C++ YMatrix 研发故事

重磅!XTransfer荣登InfoQ【十大开发者最向往的高价值技术团队】榜单

XTransfer技术

等保四级适用于哪些领域?一年一次吗?

行云管家

等保 等级保护 等保四级

智能制造 | AIRIOT智慧工厂管理解决方案

AIRIOT

物联网 智慧工厂 物联网系统搭建

使用 SQL 实现同比环比分析

搞大屏的小北

数据可视化 同比环比 展示同比环比 BI大屏同比环比

ROMA Connect: 5大联接能力+4大集成能力,推进企业数字化转型

华为云开发者联盟

云计算 后端 数字化 华为云 12 月 PK 榜

怎样将数据从Oracle迁移到TiDB

TiDB 社区干货传送门

如何正确使用网格设置制作卡片类型展示页面

Towify

云网络运维必备神器:全链路故障诊断与分析

华为云开发者联盟

云计算 后端 华为云 12 月 PK 榜

NFTScan 与 Cwallet 团队达成战略合作伙伴,由 NFTScan 为其提供 NFT API 数据服务

NFT Research

NFT 数据基础设施

墨芯人工智能加入龙蜥,携手打造软硬协同稀疏化计算平台

OpenAnolis小助手

人工智能 开源 龙蜥社区 CLA 墨芯

理解iOS端的WebView同层组件

珲少

这个API管理工具不登录不下载就能用!

不想敲代码

API 接口管理 协同办公 协同软件

网络拥堵影响业绩?看华为云CDN如何为企业保驾护航

路过的憨憨

DTT年度收官圆桌π,华为云8位技术专家的年末盘点

华为云开发者联盟

云计算 后端 华为云 12 月 PK 榜

1024·致敬 | 迟到的小温暖,感谢不平凡的你们

XTransfer技术

行云管家荣膺STIF第三届国际科创节 “2022年度数字化创新典范奖”

行云管家

信息安全 数字化 国际科创节

确保网路畅通,华为云CDN加速服务大有可为

路过的憨憨

数益工联 x TiDB丨如何运用 HTAP 挖掘工业数据价值?

TiDB 社区干货传送门

Apache APISIX 3.1.0 版本正式发布

API7.ai 技术团队

开源 api 网关 APISIX apache 社区

Liga妙谈 | 找准「话事人」,高效甄别和响应用户反馈

LigaAI

产品经理 敏捷开发 PO 产品负责人 12 月 PK 榜

如何在等待页面制作加载动画

Towify

接口自动化测试不想写代码?这款工具强烈推荐

不想敲代码

自动化测试 API 自动化测试平台

零信任与 K8s 环境实践

HummerCloud

k8s 零信任 kubernetes 运维

时序数据库 TDengine 签约新奥新智

TDengine

数据库 tdengine 时序数据库

工业数据分析为什么要用FusionInsight MRS IoTDB?

华为云开发者联盟

大数据 后端 华为云 工业数据 12 月 PK 榜

  • 扫码加入 InfoQ 开发者交流群
秒级启动万个容器,如何实现容器镜像的“加速冲刺”?_容器_阿里云容器平台_InfoQ精选文章