简介: 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容器实例?相关推荐

  1. 最佳实践丨阿里云ECI如何助力西软构建酒店行业多租户高弹性PaaS平台?

    当今社会,人们的商务或旅游出行越来越频繁,出行过程中,酒店住宿必不可少,酒店行业也在这样的趋势下获得了爆发性的增长.旅客随时都可能入住酒店,为了更好地服务客户,酒店也需要保持24小时营业:而在一天不同 ...

  2. 阿里云服务器ECS存储增强通用型g7se实例CPU性能参数详解

    腾讯云服务器ECS存储增强通用型实例规格族g7se实例CPU处理器采用Intel Xeon(Ice Lake) Platinum 8369B,基频2.7 GHz,全核睿频3.5 GHz,单实例顺序读写 ...

  3. 【云周刊】第134期:阿里云发布ECS企业级产品家族 19款实例族涵盖173个应用场景

    摘要: 阿里云发布ECS企业级产品家族,19款实例族涵盖173个应用场景 .阿里云发布T级数据压测的终极秘笈,一步步带你探究如何高效使用TensorFlow,程序员真的适合跑步健身吗?...更多精彩技 ...

  4. 【云周刊】第134期:阿里云发布ECS企业级产品家族 19款实例族涵盖173个应用场景...

    摘要: 阿里云发布ECS企业级产品家族,19款实例族涵盖173个应用场景 .阿里云发布T级数据压测的终极秘笈,一步步带你探究如何高效使用TensorFlow,程序员真的适合跑步健身吗?...更多精彩技 ...

  5. 如何使用TF卡和阿里云盘给surface pro扩容

    surface pro作为一款优秀的二合一平板电脑,其特点是轻盈小巧,能够满足日常办公需求,但是随着硬盘增大,价格飞涨,所以现在很多人处于硬盘不够用的窘境,本文介绍两种方法来给surface pro扩 ...

  6. 阿里云注册集群+Prometheus 解决多云容器集群运维痛点

    作者:左知 容器集群可观测现状 随着 Kubernetes(K8s)容器编排工具已经成为事实上行业通用技术底座,容器集群监控经历多种方案实践后,Prometheus 最终成为容器集群监控的事实标准. ...

  7. 阿里云IoT物模型上报数据流转到实例内TSDB

    阿里云物联网平台上存储的数据最多为30天,为了能让数据永久保存下来,就需要把物联网平台的数据流转到其他的数据库,对于企业版实例,内部有一个实例内的时空数据库TSDB,正好可以利用.下边就介绍一下物联网 ...

  8. 重磅!阿里云发布最新服务等级协议SLA ,多实例可用性升为99.995%

    12月13日,全球前三的云计算公司阿里云公布了最新的弹性计算服务等级协议SLA,单实例的可用性从99.95%提升至99.975%,多可用区多实例可用性从99.99%提升至99.995%,均为全球最高水 ...

  9. 阿里云发布ECS企业级产品家族 19款实例族涵盖173个应用场景

    为满足企业级客户对计算的高标准需求,8月9日,阿里云正式发布云服务器ECS企业级产品家族,目前已推出面向173种企业应用场景的19款实例.该系列适合在复杂的企业计算环境下,满足对于高性能.高可靠的计算 ...

最新文章

  1. Interface实现多态简例
  2. asp.net访问sqlserver获取数据、IsPostBack属性和VS可视化调试的概念
  3. WSS 3.0 在默认的情况下不存在IRM的protector.
  4. options模块介绍
  5. Netty--ByteBuf
  6. python初学者用什么编辑器好_新人学 python 选什么编辑器比较好呢??
  7. 大数据相关从业_如何在组织中以数据从业者的身份闪耀
  8. 前端每日实战:163# 视频演示如何用原生 JS 创作一个多选一场景的交互游戏(内含 3 个视频)...
  9. php switch正则表达式,switch的用法以及正则表达式简单的用法
  10. Jupyter Notebook代码提示及补齐功能
  11. DS8700 的CPU、缓存的选择及配置
  12. R+NLP︱text2vec包——四类文本挖掘相似性指标 RWMD、cosine、Jaccard 、Euclidean (三,相似距离)
  13. 计算机组成原理(第3版)唐朔飞著 知识点总结
  14. U盘文件突然变成html文件,U盘里面的文件跟文件夹突然乱码了怎么办
  15. 对ttl和cmos电路的理解
  16. 拆解SSK SCRM330 USB3.0读卡器 GL3233 固件 0819
  17. 彩色图像转换灰度图像
  18. 迪杰斯特拉(Dijkstra)
  19. c语言课程设计总结心得大全,c语言课程设计的心得体会
  20. 【OpenCV实战】OpenCV实现人脸检测详解(含代码)

热门文章

  1. JAVA进阶开发之(异常练习题)
  2. laravel redis_thinkphp+redis实现秒杀,缓存等功能
  3. linux hash 算法,识别哈希算法类型hash-identifier
  4. amba simple class驱动_UML - 建模基础 - 用例驱动
  5. c++回到起点旅行商问题_不要犯同样的错,提C型房车回渝上牌长途旅行的心路历程...
  6. 几个改变世界的java工具
  7. java对象底层原存储结构图解_图解图库JanusGraph系列-一文知晓“图数据“底层存储结构...
  8. python怎么用gamma函数_如何通俗的理解伽马(gamma)函数
  9. python中type用法_Python中type的用法
  10. java实现报表_修改带 JAVA 自定义类的报表还要重启应用,咋解决?