阿里云ECI如何6秒扩容3000容器实例?
简介: 2021年云栖大会现场,阿里云工程师演示了在6秒时间内成功启动3000个ECI,并全部进入到Running状态。本文将为你揭开阿里云ECI是如何做到极速扩容的。
引言
根据最新CNCF报告,有超过90%的用户在生产环境使用容器,并且有超过80%的用户通过Kubernetes管理容器。是不是我们的生产环境上了K8s就完美解决了应用部署的问题?IT界有句俗语,没有什么是万能的,K8s也不是万能的,K8s解决了应用的编排和调度,但没有解决资源容量的限制、没有解决容器的安全隔离,以及高昂的运维成本。
传统K8s的问题和困境
- 资源效率低
这个资源柱状图来自阿里云一个客户,业务的流量高峰期CPU大概在7000-8000核,在流量低谷期只有几百核CPU的使用。如果在做IT规划或者购买资源时,按照峰值流量去规划资源,会导致严重的资源浪费。但如果按照使用量去实时规划ECS资源,又会导致在面对一些突发流量时无法及时扩容,影响服务的稳定性。
- 资源隔离弱
容器使用系统内核的namespace进行资源隔离,但内核仅支持UTS、IPS等6种namespace隔离。我们遇到过一个客户,需要在测试环境修改某个业务Docker的时间,结果导致一台机器上所有的容器时间都被修改。还有定制内核参数、IO公平分享等场景,也有相同的问题。
同时,容器安全也一直被大家诟病,例如特权容器直接可以看到机器上所有的磁盘数据。
- 运维成本高
云原生为IT带来了很多便利,但同时云原生也让整个IT运维变得越来越复杂。一个K8S容器集群,至少需要部署高可用Master、网络插件、镜像仓库、日志服务,以及监控组件。即便辛苦把这些组件安装完成,也要面对后续每天各种运维、告警的处理,运维每天是各种的救火。
阿里云弹性容器实例ECI应运而生
有没有一种免运维、并且能够按需使用的安全的容器解决方案呢?阿里云弹性容器实例应运而生了。
阿里云弹性容器实例(简称ECI,Elastic Container Instance)是阿里云结合容器和Serverless技术提供的容器运行服务。通过使用ECI,在阿里云上部署容器时,无需购买和管理云服务器ECS,可以直接在阿里云上运行Pod和容器,省去了底层服务器的运维和管理工作。简单来说,一个ECI就是一个Pod,可以被K8s编排和调度。
阿里云弹性容器实例特别适用于突发的业务流量,或者短周期的任务运行。那么ECI和客户自己去购买ECS,在ECS里运行Docker有什么区别呢?最大的区别在于如果使用ECI,整个容器的运行时会将由阿里云来运维。
ECI有以下优点:
- 底层资源由阿里云托管,用户不再需要管理底层VM(虚拟机)。
- 复用整个阿里云的弹性计算资源池,保证充足的库存。
- 低成本,按秒计费,从Pod开始创建时收费。
- 启动快,秒级启动底层安全沙箱。
- 兼容性强,完全兼容K8s。
阿里云弹性容器实例采用社区的Virtual Kubelet方案与K8s集成,当集群内有Pod创建并调度到Virtual Kubelet时,Kubelet就会调用ECI接口,启动ECI。
ECI与业务系统的对接方式包括:
- (推荐)通过阿里云容器服务Serverless Kubernetes(ASK)部署业务,提供无需运维的Kubernetes集群能力,底层Pod资源全部使用ECI承载。
- (推荐)通过阿里云容器服务Kubernetes(ACK)部署业务,为ACK集群提供额外的海量弹性能力。
- 通过Virtual Node对接用户在ECS上自建的Kubernetes集群,提供方便快捷的弹性计算资源。
- 通过Virtual Node对接用户在线下IDC自建的Kubernetes集群,提供云上的无限弹性计算能力。
- 通过OpenAPI直接对接业务系统,低成本的随时创建或释放ECI业务容器。
ECI极速启动实例:6秒钟3000个容器实例
在2021年云栖大会现场,阿里云Serverless容器服务弹性容器实例发布了极速启动实例新特性。弹性容器实例在解决上述应用部署问题的基础上,创新的提供极速启动的产品特性。现场演示了在6秒时间内成功启动3000个ECI,并全部进入到Running状态。
阿里云是如何做到6秒钟启动3000个容器实例?
一方面,通过大量用户级别的创建历史数据,应用机器学习找出用户创建Pod的规律,通过预测预调度、资源复用等手段,节省ECI的调度、创建时间,同时使用了阿里云袋鼠沙箱容器作为引擎,辅以overlay网络、存储方案,将单ECI实例冷启动时间压缩到了3秒以下,针对袋鼠引擎后续会有专门文章进行详细的介绍,也敬请大家期待。
另一方面,在镜像拉取维度,通过镜像缓存把容器镜像做成快照,免去每次启动Pod拉取容器镜像的动作,例如阿里云的达摩院AI团队部分镜像可以达到几百G,如果按照传统方式拉取需要十几分钟,通过ECI的镜像缓存方案可以实现Pod秒级启动。
展望未来
阿里云弹性容器实例提供了从Runtime、GuestOS、底层计算、网络、存储资源的免运维全托管服务,并在2021年云栖大会上发布了极速的实例启动速度,帮助客户快捷的完成业务系统扩缩容。
随着云厂商服务边界的进一步上移,ECI期望通过规模化、集约化的资源调度和端到端的Runtime设计,提供相比客户自建容器资源池更好的弹性、性能和成本能力,这将是未来1-2年阿里云弹性容器实例持续探索的方向。
原文链接
本文为阿里云原创内容,未经允许不得转载。
阿里云ECI如何6秒扩容3000容器实例?相关推荐
- 最佳实践丨阿里云ECI如何助力西软构建酒店行业多租户高弹性PaaS平台?
当今社会,人们的商务或旅游出行越来越频繁,出行过程中,酒店住宿必不可少,酒店行业也在这样的趋势下获得了爆发性的增长.旅客随时都可能入住酒店,为了更好地服务客户,酒店也需要保持24小时营业:而在一天不同 ...
- 阿里云服务器ECS存储增强通用型g7se实例CPU性能参数详解
腾讯云服务器ECS存储增强通用型实例规格族g7se实例CPU处理器采用Intel Xeon(Ice Lake) Platinum 8369B,基频2.7 GHz,全核睿频3.5 GHz,单实例顺序读写 ...
- 【云周刊】第134期:阿里云发布ECS企业级产品家族 19款实例族涵盖173个应用场景
摘要: 阿里云发布ECS企业级产品家族,19款实例族涵盖173个应用场景 .阿里云发布T级数据压测的终极秘笈,一步步带你探究如何高效使用TensorFlow,程序员真的适合跑步健身吗?...更多精彩技 ...
- 【云周刊】第134期:阿里云发布ECS企业级产品家族 19款实例族涵盖173个应用场景...
摘要: 阿里云发布ECS企业级产品家族,19款实例族涵盖173个应用场景 .阿里云发布T级数据压测的终极秘笈,一步步带你探究如何高效使用TensorFlow,程序员真的适合跑步健身吗?...更多精彩技 ...
- 如何使用TF卡和阿里云盘给surface pro扩容
surface pro作为一款优秀的二合一平板电脑,其特点是轻盈小巧,能够满足日常办公需求,但是随着硬盘增大,价格飞涨,所以现在很多人处于硬盘不够用的窘境,本文介绍两种方法来给surface pro扩 ...
- 阿里云注册集群+Prometheus 解决多云容器集群运维痛点
作者:左知 容器集群可观测现状 随着 Kubernetes(K8s)容器编排工具已经成为事实上行业通用技术底座,容器集群监控经历多种方案实践后,Prometheus 最终成为容器集群监控的事实标准. ...
- 阿里云IoT物模型上报数据流转到实例内TSDB
阿里云物联网平台上存储的数据最多为30天,为了能让数据永久保存下来,就需要把物联网平台的数据流转到其他的数据库,对于企业版实例,内部有一个实例内的时空数据库TSDB,正好可以利用.下边就介绍一下物联网 ...
- 重磅!阿里云发布最新服务等级协议SLA ,多实例可用性升为99.995%
12月13日,全球前三的云计算公司阿里云公布了最新的弹性计算服务等级协议SLA,单实例的可用性从99.95%提升至99.975%,多可用区多实例可用性从99.99%提升至99.995%,均为全球最高水 ...
- 阿里云发布ECS企业级产品家族 19款实例族涵盖173个应用场景
为满足企业级客户对计算的高标准需求,8月9日,阿里云正式发布云服务器ECS企业级产品家族,目前已推出面向173种企业应用场景的19款实例.该系列适合在复杂的企业计算环境下,满足对于高性能.高可靠的计算 ...
最新文章
- Interface实现多态简例
- asp.net访问sqlserver获取数据、IsPostBack属性和VS可视化调试的概念
- WSS 3.0 在默认的情况下不存在IRM的protector.
- options模块介绍
- Netty--ByteBuf
- python初学者用什么编辑器好_新人学 python 选什么编辑器比较好呢??
- 大数据相关从业_如何在组织中以数据从业者的身份闪耀
- 前端每日实战:163# 视频演示如何用原生 JS 创作一个多选一场景的交互游戏(内含 3 个视频)...
- php switch正则表达式,switch的用法以及正则表达式简单的用法
- Jupyter Notebook代码提示及补齐功能
- DS8700 的CPU、缓存的选择及配置
- R+NLP︱text2vec包——四类文本挖掘相似性指标 RWMD、cosine、Jaccard 、Euclidean (三,相似距离)
- 计算机组成原理(第3版)唐朔飞著 知识点总结
- U盘文件突然变成html文件,U盘里面的文件跟文件夹突然乱码了怎么办
- 对ttl和cmos电路的理解
- 拆解SSK SCRM330 USB3.0读卡器 GL3233 固件 0819
- 彩色图像转换灰度图像
- 迪杰斯特拉(Dijkstra)
- c语言课程设计总结心得大全,c语言课程设计的心得体会
- 【OpenCV实战】OpenCV实现人脸检测详解(含代码)
热门文章
- JAVA进阶开发之(异常练习题)
- laravel redis_thinkphp+redis实现秒杀,缓存等功能
- linux hash 算法,识别哈希算法类型hash-identifier
- amba simple class驱动_UML - 建模基础 - 用例驱动
- c++回到起点旅行商问题_不要犯同样的错,提C型房车回渝上牌长途旅行的心路历程...
- 几个改变世界的java工具
- java对象底层原存储结构图解_图解图库JanusGraph系列-一文知晓“图数据“底层存储结构...
- python怎么用gamma函数_如何通俗的理解伽马(gamma)函数
- python中type用法_Python中type的用法
- java实现报表_修改带 JAVA 自定义类的报表还要重启应用,咋解决?