秒级启动万个容器,探秘阿里云容器镜像加速黑科技

阿里云容器与存储团队展开合作,利用DADI加速器支持镜像按需读取和P2P分发,实现3.01秒启动10000个容器,完美杜绝容器冷启动的数分钟漫长等待,以及镜像仓库大规模并行分发场景下的网络拥堵。

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

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

针对冷启动的痛点,阿里云推出一个全新存储引擎DADI加速器,将容器冷启动耗时缩短至数秒。方案沉淀自阿里集团内部大规模应用的数据访问加速经验,曾在双十一大促中为大规模容器集群扩容提供了秒级拉起能力。

本次测试场景是在 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 秒摸高测试

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

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

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

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

  • 镜像格式优化: 为了避免下载+解压造成的高时延,DADI团队设计了一种新的镜像格式,内含索引,无需下载和解压完整镜像即可直接访问;
  • 按需P2P数据读取: 为减轻批量扩容时对单点Registry带来的总体负载,DADI利用树形P2P网络对进行数据分发。即少数P2P根节点从Registry获取,其他节点(宿主机)之间可相互传输数据,批量扩容时可快速分发数据到所有节点;
  • 高效的解压缩算法: DADI提供了一种新型的压缩文件格式,可按需单独解压用户访实际问的数据,且解压时间开销可忽略不计。

Figure 5 - 容器启动流程对比

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


Figure 6 – DADI P2P数据分发

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


原文链接
本文为阿里云原创内容,未经允许不得转载。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/516980.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

官宣丨中国移动云能力中心新增5项可信云认证,斩获2项大奖!

近日,由中国信息通信研究院、中国通信标准化协会联合主办的“2020可信云大会”圆满落幕。 围绕“数字新基建可信新生态”话题,会上探讨了新基建与云计算的发展未来,披露了2020年可信云上半年最新评估结果,并揭晓了2020年可信云多项…

跟我学-域名解析故障排查技巧

天苍苍,野茫茫,网站一瘫,唯有泪两行!! 客户跳,老板叫,解析故障,心惊又肉跳!! 对企业网站来说,很怕出现网站打不开的情况,一旦发生&…

axios安装使用

1.进入项目运行命令,原因同v-resource安装 cnpm install axios --save 2.在需要使用时引入 如: 使用按照gitubs上提供的示例做就可以了

首次曝光 | 阿里数万名开发者都在使用的数据库开发工具到底长什么样?

除了基础的数据查询开发功能,DMS还内置SQL审核、性能诊断优化、测试数据自动生成、多环境数据对比同步、数据库日志追踪回滚、不锁表变更、访问控制、敏感数据脱敏、安全审计等高端功能。 1、丰富的数据源 🔸丰富的数据库类型支持(当前已超…

MySQL5.7.x 安装 Linux7环境

文章目录一、软件安装1. 下载2. 解压3.安装4. 跳过权限5. 启动mysql服务端6. 设置密码7. 允许远程连接8.开发3306端口二、安装报错方案一、软件安装 1. 下载 wget https://downloads.mysql.com/archives/get/p/23/file/mysql-5.7.33-1.el7.x86_64.rpm-bundle.tarhttps://dev.…

使用ant design vue 中table组件运行时not found: Error: Can't resolve 'reqwest' in 'D:\vue\antd-demo01\src\com

最近使用table时按照官网api使用table报了上面这个错误 1.只需要安装无法找到文件就可以正常运行了 2.命令行cd进入项目文件 3.运行npm install --save reqwest table就出来了

Serverless Kubernetes 入门:对 Kubernetes 做减法

导读:Serverless Kubernetes 是阿里云容器服务团队对未来 Kubernetes 演进方向的一种探索,通过对 Kubernetes 做减法,降低运维管理负担,简化集群管理,让 Kubernetes 从复杂到简单。 背景 Kubernetes 作为通用的容器编…

硬核“毕业证”:5 位本科生带自研处理器芯片毕业,包云岗解读“一生一芯”计划...

作者 | 包云岗责编 | 伍杏玲本文经作者授权转载自包云岗知乎【编者按】近日,中国科学院大学五位本科生的硬核“毕业证”引发IT圈热议,在“一生一芯”培养计划下,由五位2016级本科生主导完成一款64位RISC-V处理器SoC芯片设计并实现流片&#x…

如何打造“智能助理”?阿里对话开发平台这样做

阿里妹导读:一个合格的智能助理能够帮你预约开会时间,处理日常办公需求,还能打电话提醒你要还信用卡了,作为用户或者消费者,我们已经越来越习惯对话机器人提供的各色服务。但对于企业来讲,搭建提供这些服务…

关于vue中使用iconfont

1.进入iconfont图标库 2.点击下载 3.将下载文件解压拷贝至项目assets文件夹下 4.在main.js中全局引入 import ./assets/iconfont/iconfont.css5.在App.vue中使用 <span class"icon iconfont icon-****"></span>今天使用过程中按照这个导入还是一直会…

openoffice 安装 linux环境

文章目录一、安装配置启动1. 下载软件2. 上传文件3. 解压4. 安装rpm文件5. 安装openoffice6. 前台启动7. 后台启动8. 查看启动状态二、openoffice卸载与异常2.1. 删除openoffice2.2. 启动异常2.2. 解决方案2.3. 启动异常22.3. 解决方案2一、安装配置启动 1. 下载软件 https:/…

阿里巴巴大规模应用Flink的踩坑经验:如何大幅降低 HDFS 压力?

众所周知 Flink 是当前广泛使用的计算引擎&#xff0c;Flink 使用 checkpoint 机制进行容错处理[1]&#xff0c;Flink 的 checkpoint 会将状态快照备份到分布式存储系统&#xff0c;供后续恢复使用。在 Alibaba 内部我们使用的存储主要是 HDFS&#xff0c;当同一个集群的 Job 到…

云原生领域首本架构白皮书,你Get到了吗?

来源 | 《云原生架构白皮书》【导读】近日&#xff0c;由阿里云 20 位云原生技术专家共同编撰的《云原生架构白皮书》正式对外发布。作为业界第一本全方位构建云原生架构规划与实践全景图的白皮书&#xff0c;本书在详细阐述云原生架构定义的同时&#xff0c;完整展示云原生架构…

让机器读懂视频:亿级淘宝视频背后的多模态AI算法揭秘

背景 随着4G的普及和5G的推出&#xff0c;内容消费的诉求越来越受到人们的重视。2019年互联网趋势报告指出在移动互联网行业整体增速放缓的大背景下&#xff0c;短视频行业异军突起&#xff0c;成为“行业黑洞”抢夺用户时间&#xff0c;尽管移动互联网人口红利见顶&#xff0…

“崩溃!我再也不搞 AI 了”谷歌 AI 专家:别让你的方法打败你!

今天&#xff0c;想跟大家聊聊 Python 人工智能。最近几年&#xff0c;我看过市面上很多 Python和人工智能的教程&#xff0c;基本都是先介绍Python基本语法、dict、tuple 等基本库的使用&#xff0c;最后学习机器学习、深度学习的常用算法......但我与 Google 人工智能开发专家…

解决jodconverter 2.2.1 版本不支持docx、xlsx、pptx 转换成PDF格式异常

文章目录一、基础对比1.版本对比2.异常现象二、分析定位2.1. 找异常输出处2.2. 找异常源头2.3. api源头三、实现流程3.1. 思路3.2. 新建包重写类3.3. 完整类一、基础对比 1.版本对比 03版本office07版本及高版本office.doc.docx.xls.xlsx.ppt.pptx 2.异常现象 搭建好 Spring…

突破边界局限,阿里云神龙负责人张献涛分享15年虚拟化之路

2020年1月8日&#xff0c;弹性计算服务技术总负责人张献涛受邀出席“面对面 见未来”的沙龙分享活动&#xff0c;现场听众主要是银行、保险、证券等金融行业的CTO、CIO等。 演讲开始前&#xff0c;听众们了解神龙云服务器的并不多。在听完张献涛的介绍后&#xff0c;他们对神龙…

Tablestore入门手册-UpdateRow接口详解

表格存储Tablestore入门手册系列主要介绍表格存储的各个功能接口和适用场景&#xff0c;帮助客户了解和使用表格存储Tablestore。本文对表格存储Tablestore的UpdateRow接口进行介绍&#xff0c;包括其参数、功能示例、使用场景等。 接口概述 UpdateRow接口是表格存储Tablestor…

给力!一行代码躺赚普通程序员10年薪资!

笔者这两天闲逛知乎&#xff0c;看到了这个帖子&#xff1a;匿名答题&#xff0c;发表于2014年&#xff0c;此外没有留下任何多余信息。2年躺赚200万&#xff0c;相当于普通程序员10年的工资。没想到Pyhon这么强大&#xff0c;怪不得有人说“除了不会生孩子&#xff0c;Python什…

支付宝移动端 Hybrid 解决方案探索与实践

目前 mPaaS H5 容器 Demo 源码已发布至 GitHub&#xff0c;全新的接入方式让你可以一键集成 mPaaS 环境并快速接入 H5 容器&#xff0c;体验统一的容器和内核&#xff0c;获取媲美原生的 Hybrid 方案及完美的动态能力。 支付宝 Hybrid 方案建设与演进 目前支付宝有 2 套 Hybr…