阿里云ECI如何6秒扩容3000容器实例?

本文涉及的产品
容器镜像服务 ACR,镜像仓库100个 不限时长
简介: 2021年云栖大会现场,阿里云工程师演示了在6秒时间内成功启动3000个ECI,并全部进入到Running状态。本文将为你揭开阿里云ECI是如何做到极速扩容的。

引言

根据最新CNCF报告,有超过90%的用户在生产环境使用容器,并且有超过80%的用户通过Kubernetes管理容器。是不是我们的生产环境上了K8s就完美解决了应用部署的问题?IT界有句俗语,没有什么是万能的,K8s也不是万能的,K8s解决了应用的编排和调度,但没有解决资源容量的限制、没有解决容器的安全隔离,以及高昂的运维成本。


传统K8s的问题和困境


  • 资源效率低


图1.png

这个资源柱状图来自阿里云一个客户,业务的流量高峰期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编排和调度。

2-架构图.jpg


阿里云弹性容器实例特别适用于突发的业务流量,或者短周期的任务运行。那么ECI和客户自己去购买ECS,在ECS里运行Docker有什么区别呢?最大的区别在于如果使用ECI,整个容器的运行时会将由阿里云来运维。


3-架构图.jpg


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业务容器。


图4.png


ECI极速启动实例:6秒钟3000个容器实例


在2021年云栖大会现场,阿里云Serverless容器服务弹性容器实例发布了极速启动实例新特性。弹性容器实例在解决上述应用部署问题的基础上,创新的提供极速启动的产品特性。现场演示了在6秒时间内成功启动3000个ECI,并全部进入到Running状态。

04:5

阿里云是如何做到6秒钟启动3000个容器实例?


一方面,通过大量用户级别的创建历史数据,应用机器学习找出用户创建Pod的规律,通过预测预调度、资源复用等手段,节省ECI的调度、创建时间,同时使用了阿里云袋鼠沙箱容器作为引擎,辅以overlay网络、存储方案,将单ECI实例冷启动时间压缩到了3秒以下,针对袋鼠引擎后续会有专门文章进行详细的介绍,也敬请大家期待。


另一方面,在镜像拉取维度,通过镜像缓存把容器镜像做成快照,免去每次启动Pod拉取容器镜像的动作,例如阿里云的达摩院AI团队部分镜像可以达到几百G,如果按照传统方式拉取需要十几分钟,通过ECI的镜像缓存方案可以实现Pod秒级启动。

5-架构图.jpg


展望未来


阿里云弹性容器实例提供了从Runtime、GuestOS、底层计算、网络、存储资源的免运维全托管服务,并在2021年云栖大会上发布了极速的实例启动速度,帮助客户快捷的完成业务系统扩缩容。


随着云厂商服务边界的进一步上移,ECI期望通过规模化、集约化的资源调度和端到端的Runtime设计,提供相比客户自建容器资源池更好的弹性、性能和成本能力,这将是未来1-2年阿里云弹性容器实例持续探索的方向。


相关实践学习
利用大模型大规模分发技术,实现AIGC在线应用秒级弹性
通过ECI的数据缓存技术实现大模型的快速分发,将模型与应用解耦,敏捷部署,实现秒级在线弹性启动。
深入解析Docker容器化技术
Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。Docker是世界领先的软件容器平台。开发人员利用Docker可以消除协作编码时“在我的机器上可正常工作”的问题。运维人员利用Docker可以在隔离容器中并行运行和管理应用,获得更好的计算密度。企业利用Docker可以构建敏捷的软件交付管道,以更快的速度、更高的安全性和可靠的信誉为Linux和Windows Server应用发布新功能。 在本套课程中,我们将全面的讲解Docker技术栈,从环境安装到容器、镜像操作以及生产环境如何部署开发的微服务应用。本课程由黑马程序员提供。     相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
相关文章
|
1月前
|
存储 Kubernetes Docker
容器服务ACK常见问题之阿里云控制台进不去了如何解决
容器服务ACK(阿里云容器服务 Kubernetes 版)是阿里云提供的一种托管式Kubernetes服务,帮助用户轻松使用Kubernetes进行应用部署、管理和扩展。本汇总收集了容器服务ACK使用中的常见问题及答案,包括集群管理、应用部署、服务访问、网络配置、存储使用、安全保障等方面,旨在帮助用户快速解决使用过程中遇到的难题,提升容器管理和运维效率。
|
28天前
|
缓存 编解码 弹性计算
阿里云服务器e/u1/c7/c7a/c8a/c8y/g7/g7a/g8a/g8ae实例适用场景汇总
目前阿里云活动购买云服务器时,除了轻量应用服务器之外,活动内的云服务器实例规格主要以e/u1/c7/c7a/c8a/c8y/g7/g7a/g8a/g8ae这几种为主,本文主要为大家介绍了阿里云服务器的实例规格是什么,有什么用?并汇总了阿里云轻量应用服务器和阿里云服务器e/u1/c7/c7a/c8a/c8y/g7/g7a/g8a/g8ae实例规格适用场景,以供大家了解和选择适合自己的需求的实例规格。
阿里云服务器e/u1/c7/c7a/c8a/c8y/g7/g7a/g8a/g8ae实例适用场景汇总
|
存储 弹性计算 网络协议
阿里云服务器经济型e、通用算力型u1与c7/g7/r7/c8y/g8y/r8y实例区别及选择参考
在阿里云目前的各个活动中,除了轻量应用服务器之外,活动内的云服务器实例规格主要以经济型e、通用算力型u1、计算型c7/c8y、通用型g7/g8y、内存型r7/r8y这几个实例规格为主,c7/c8y属于计算型实例,g7/g8y属于通用型实例,c7/r8y属于内存型实例,c7/g7/r7属于最新第七代云服务器实例,c8y/g8y/r8y属于倚天云服务器实例,不同的云服务器实例规格在性能、特点及适用场景上有所不同,本文大家介绍一下阿里云服务器经济型e、通用算力型u1与c7/g7/r7/c8y/g8y/r8y的区别,以供参考。
阿里云服务器经济型e、通用算力型u1与c7/g7/r7/c8y/g8y/r8y实例区别及选择参考
|
14天前
|
弹性计算 安全
电子好书发您分享《阿里云第八代企业级ECS实例,为企业提供更安全的云上防护》
阿里云第八代ECS实例,搭载第五代英特尔至强处理器与飞天+CIPU架构,提升企业云服务安全与算力。[阅读详情](https://developer.aliyun.com/ebook/8303/116162?spm=a2c6h.26392459.ebook-detail.5.76bf7e5al1Zn4U) ![image](https://ucc.alicdn.com/pic/developer-ecology/cok6a6su42rzm_f422f7cb775444bbbfc3e61ad86800c2.png)
35 14
|
24天前
|
存储 缓存 PHP
阿里云服务器实例、CPU内存、带宽、操作系统选择参考
对于使用阿里云服务器的用户来说,云服务器的选择和使用非常重要,如果实例、内存、CPU、带宽等配置选择错误,可能会影响到自己业务在云服务器上的计算性能及后期运营状况,本文为大家介绍一下阿里云服务器实例、CPU内存、带宽、操作系统的选择注意事项,以供参考。
阿里云服务器实例、CPU内存、带宽、操作系统选择参考
|
29天前
|
弹性计算 缓存 Kubernetes
什么是阿里云弹性容器实例?弹性容器实例优势及应用场景介绍
弹性容器实例是阿里云的云服务器产品,使用弹性容器实例之后,用户无需管理底层 ECS 服务器,只需要提供打包好的镜像,即可运行容器,与阿里云容器服务无缝对接并仅为容器实际运行消耗的资源付费。本文介绍了阿里云弹性容器实例的、功能特性、产品优势及应用场景。
什么是阿里云弹性容器实例?弹性容器实例优势及应用场景介绍
|
1月前
|
缓存 编解码 前端开发
2024年阿里云服务器经济型e、通用算力型u1及计算型、通用型实例适用场景参考
目前阿里云的活动中提供了多种云服务器实例规格,包括经济型e、通用算力型u1、计算型c7/a系列和通用型g7/a系列等,适用于不同场景。实例规格定义了CPU、内存等配置,影响计算和存储能力。本文主要为大家介绍了阿里云服务器的实例规格是什么,并汇总了阿里云轻量应用服务器和阿里云服务器e/u1/c7/c7a/c8a/c8y/g7/g7a/g8a/g8ae实例规格适用场景,以供参考。
2024年阿里云服务器经济型e、通用算力型u1及计算型、通用型实例适用场景参考
|
1月前
|
Kubernetes 网络安全 调度
容器服务ACK常见问题之容器服务ACK的eci调度卡住如何解决
容器服务ACK(阿里云容器服务 Kubernetes 版)是阿里云提供的一种托管式Kubernetes服务,帮助用户轻松使用Kubernetes进行应用部署、管理和扩展。本汇总收集了容器服务ACK使用中的常见问题及答案,包括集群管理、应用部署、服务访问、网络配置、存储使用、安全保障等方面,旨在帮助用户快速解决使用过程中遇到的难题,提升容器管理和运维效率。
|
存储 弹性计算 资源调度
带你读《弹性计算—无处不在的算力》第三章:计算产品和技术3.7容器服务与弹性容器实例(二)
《弹性计算—无处不在的算力》第三章:计算产品和技术3.7容器服务与弹性容器实例(二)
135 0
带你读《弹性计算—无处不在的算力》第三章:计算产品和技术3.7容器服务与弹性容器实例(二)
|
消息中间件 弹性计算 运维
带你读《弹性计算—无处不在的算力》第三章:计算产品和技术3.7容器服务与弹性容器实例(一)
《弹性计算—无处不在的算力》第三章:计算产品和技术3.7容器服务与弹性容器实例(一)
144 0
带你读《弹性计算—无处不在的算力》第三章:计算产品和技术3.7容器服务与弹性容器实例(一)