eyr83761 发表于 2024-10-5 22:46:50

什么是阿里云弹性容器实例?弹性容器实例产品优势及应用场景介绍

弹性容器实例是阿里云的云服务器产品,使用弹性容器实例之后,用户无需管理底层 ECS 服务器,只需要提供打包好的镜像,即可运行容器,与阿里云容器服务无缝对接并仅为容器实际运行消耗的资源付费。本文介绍了阿里云弹性容器实例的、功能特性、产品优势及应用场景。



https://upload-images.jianshu.io/upload_images/19316870-c2dcf7dde5e6445e.png

<div class="image-caption">弹性容器实例优势.png

<h2>一、什么是弹性容器实例</h2>
<h3>1.产品概述</h3>
弹性容器实例(简称ECI)是阿里云结合容器和Serverless技术为您提供的容器运行服务。通过使用ECI,在阿里云上部署容器时,您无需购买和管理云服务器ECS,只需提供打包好的Docker镜像,即可在阿里云上运行容器。
从购买配置ECS再部署容器(ECS模式)到直接部署容器(ECI模式),ECI为您省去了底层服务器的运维和管理工作,让您专注于业务开发,提升开发效率。同时,您仅需要为容器实际运行消耗的资源付费,可以节约使用成本。
使用ECI时,您既可以借助OpenAPI将ECI接入到您已有的业务系统中,通过OpenAPI和控制台直接快速部署容器应用;也可以通过Virtual Kubelet对接Kubernetes集群,借助ECI的弹性能力轻松应对突发业务流量。



https://upload-images.jianshu.io/upload_images/19316870-e46317e1c2375f39.png



如上图所示,ECI与您业务系统的对接方式包括:

[*](推荐)通过阿里云ACK Serverless集群部署业务,支持基于Kubernetes的容器服务全托管,提供无需运维的Kubernetes集群能力,底层Pod资源全部使用ECI承载。
[*](推荐)通过阿里云ACK集群部署业务,为您的ACK集群提供额外的海量弹性能力。
[*]通过Virtual Kubelet对接您在ECS上或者线下IDC自建的Kubernetes集群,提供方便快捷的计算资源。
[*]通过OpenAPI对接您的业务系统,您可以根据需要,低成本地随时创建或释放ECI容器,无需担心并发和容量。

<h3>2.产品架构</h3>
ECI底层使用基于阿里云CIPU的自研安全沙箱容器,提供虚拟机级别的安全和资源隔离能力,同时针对容器运行环境进行深度优化,提供比虚拟机更快的启动速度和运行效率。其架构如下图所示。




https://upload-images.jianshu.io/upload_images/19316870-4c98829be5b853ff.png



ECI支持无缝集成Kubernetes,可以为Kubernetes提供一种层次化的解决方案:即ECI负责底层Pod容器资源的调度和管理工作,Kubernetes在ECI之上作为PaaS层来管理业务负载。推荐您使用阿里云容器服务Kubernetes版来快速体验ECI的容器运行能力。阿里云容器服务产品的整体架构如下图所示。



https://upload-images.jianshu.io/upload_images/19316870-5f4f31f557bb9ab3.png



<h3>3.产品计费</h3>
使用弹性容器实例时,涉及收费的资源如下:
<table>
<thead>
<tr>
<th>资源</th>
<th>计费说明</th>
</tr>
</thead>
<tbody>
<tr>
<td>ECI实例(计算资源)</td>
<td>根据您创建ECI实例的方式,支持两种计费模式:- 按vCPU和内存- 按ECS规格</td>
</tr>
<tr>
<td>镜像缓存</td>
<td>创建镜像缓存:手动创建需支付临时资源费用和快照费用;自动创建无需付费。使用镜像缓存:根据镜像缓存类型和大小,可能需要额外支付云盘或临时存储空间费用。</td>
</tr>
<tr>
<td>数据缓存</td>
<td>创建数据缓存:需支付临时资源费用和快照费用。使用数据缓存:需要额外支付云盘费用。</td>
</tr>
<tr>
<td>临时存储空间</td>
<td>创建ECI实例时,如果增加了临时存储空间大小,需为其付费。</td>
</tr>
</tbody>
</table>
<h2>二、阿里云弹性容器实例功能特性</h2>
下面介绍弹性容器实例的功能特性。
<h3>1.容器运行服务</h3>
弹性容器实例是敏捷安全的Serverless容器运行服务。一个ECI实例对应一个容器组(即一个Pod),包含vCPU、内存、操作系统、容器运行时、网络、临时存储等基础组件。

**Serverless1.
使用ECI实例,您无需管理底层服务器,也无需关心运行过程中的容量规划,只需提供打包好的镜像,即可运行容器应用。

自定义规格
支持多种类型的计算资源来运行容器,可以自定义规格,包括:

[*]指定ECI规格:支持指定实例级别或者容器级别的vCPU和内存。
[*]指定ECS规格:支持指定ECS规格来满足特殊业务需求,例如GPU、AMD规格等。


按量按秒收费
支持一站式管理ECI实例的生命周期,按您实际使用时长收费;以小时为单位,按秒收费。

秒级弹性伸缩
ECI实例支持秒级启动,可快速完成扩缩容,满足业务的实时响应需求。

镜像缓存
支持镜像缓存功能加速ECI实例创建,减少实例启动耗时。
<h3>2.兼容Kubernetes</h3>
基于Kubernetes社区的Virtual Kubelet技术,ECI可以通过虚拟节点的方式接入到Kubernetes集群中,使得集群可以轻松获得极大的弹性能力,而不必受限于集群的节点计算容量。ECI在接管Pod容器底层基础设施的管理工作后,Kubernetes不再需要直接负责单个Pod的放置、启动等工作,也不再需要关心底层虚拟机的资源情况,通过ECI即可确保Pod需要的资源随时可用。
ECI对接Kubernetes分为以下几种:

[*]
对接阿里云容器服务Kubernetes版
如果您正在进行Kubernetes集群的选型,推荐您使用阿里云容器服务Kubernetes版。目前ECI已无缝集成到ACK集群(混合使用ECS和ECI)和ACK Serverless集群(完全基于ECI)中。您可以通过ACK集群或者ACK Serverless集群,快速体验ECI的容器运行能力。

[*]
对接自建Kubernetes集群
如果您已经在本地IDC,或者阿里云的ECS上自建了Kubernetes集群,可以通过部署虚拟节点的方式来使用ECI。


<h3>3.集成云上服务</h3>
ECI支持与阿里云其他服务紧密集成,您可以使用一体化控制台进行高效操作。除无缝集成到阿里云容器服务(ACK和ACK Serverless集群)外,ECI还支持集成以下云服务:

[*]镜像:支持使用容器镜像服务ACR。
[*]网络:支持接入负载均衡SLB实现;可以通过NAT网关和弹性公网IP连接公网。
[*]存储:可配合使用云盘、文件存储NAS、对象存储OSS实现容器数据的持久化存储。
[*]日志:支持采集日志到日志服务SLS。
[*]安全:可配合访问控制RAM实现ECI资源的访问权限控制。
[*]弹性伸缩:可配合使用弹性伸缩实现自动扩缩容ECI实例。

<h2>三、阿里云弹性容器实例产品优势</h2>
弹性容器实例为您提供免运维、弹性、低成本、高效的容器运行环境。
<h3>核心优势</h3>
弹性容器实例的核心优势主要体现在以下几方面:

[*]

免运维
采用Serverless架构,基础设施托管。您无需关心底层服务器,只需要提交容器镜像;无需预先创建集群和维护集群,无需关注运行过程中的容量规划,可以专注业务领域创新。
[*]

灵活部署
以阿里云全球计算基础设施作为资源池,提供海量、高并发、多种资源类型(CPU、高主频、GPU等)的容器计算资源,您可以根据需要灵活部署。
[*]

低成本
按实例启动到结束时间段内消耗的资源计费,时长精确到秒。配合Kubernetes或者您自建的调度系统,ECI可根据业务流量自动弹性伸缩,减少空置费用。
[*]

高弹性
支持快速秒级启动实例,您无需提前预估集群容量和业务流量,可以按需扩容,轻松应对百倍的业务突发流量。
[*]

兼容性
兼容Kubernetes,Kubernetes集群上的Pod能直接调度至ECI。支持无缝集成至阿里云容器服务Kubernetes版,同时支持通过virtual kubelet对接您自建的Kubernetes集群。
[*]

集成
自动集成阿里云的其它服务,可快速实现网络访问、日志采集、数据持久化存储、服务监控等功能。例如:日志服务SLS、文件存储NAS、监控服务ARMS等。

<h3>优势对比</h3>
ECI的核心是容器组,它的概念与Kubernetes的Pod概念完全兼容。使用ECI作为容器运行环境,可以为您的业务系统提供更高的弹性和安全性,同时降低使用和运维成本。
阿里云各类容器服务运行环境的对比如下表所示。
<table>
<thead>
<tr>
<th>对比项</th>
<th>弹性容器实例</th>
<th>云服务器ECS</th>
<th>弹性裸金属服务器</th>
</tr>
</thead>
<tbody>
<tr>
<td>成本</td>
<td>只为Pod付费,节约成本。</td>
<td>为ECS整体付费。</td>
<td>为裸金属服务器整体付费。</td>
</tr>
<tr>
<td>运维</td>
<td>无需管理节点,运维简单,成本低。</td>
<td>需要自行管理节点,运维ECS。</td>
<td>需要自行管理节点,运维裸金属服务器。</td>
</tr>
<tr>
<td>性能</td>
<td>小幅虚拟化损耗。秒级启动,无需预留资源。</td>
<td>小幅虚拟化损耗。</td>
<td>无虚拟化损耗。</td>
</tr>
<tr>
<td>弹性</td>
<td>最好。支持小规格,提供更多库存。</td>
<td>相对好。</td>
<td>相对一般。</td>
</tr>
<tr>
<td>安全</td>
<td>Pod之间强隔离,安全性更高。</td>
<td>ECS之间强隔离,Pod之间弱隔离。</td>
<td>服务器之间强隔离,Pod之间弱隔离。</td>
</tr>
<tr>
<td>宕机率</td>
<td>极低。影响单个Pod,对业务基本无影响。</td>
<td>极低。影响单台ECS,包括部署在该ECS的Pod。</td>
<td>极低。影响单台服务器,包括部署在该服务器的Pod。</td>
</tr>
</tbody>
</table>
<h2>四、阿里云弹性容器实例应用场景</h2>
弹性容器实例适用于容器形态下大部分业务场景,从弹性及成本角度,特别适用于在线业务的免运维托管、大数据计算任务(Spark、Presto)、事件驱动型业务和Job型业务,以及DevOps、机器学习、在线测试等各类场景。
<h3>概述</h3>
弹性容器实例可以通过以下方式对接您的业务系统:

[*]无缝接入阿里云ACK Serverless集群
[*]以Virtual Node的方式接入Kubernetes集群(阿里云ACK集群、ECS上或者线下IDC自建的Kubernetes集群)
[*]通过OpenAPI接入

基于ECI在Serverless、弹性、成本、效率和兼容等方面的优势,ECI特别适用于弹性和并发场景的业务,主要应用场景如下图所示。




https://upload-images.jianshu.io/upload_images/19316870-4e324952ec9aa922.png



<h3>在线业务弹性扩容</h3>
根据业务流量自动对业务进行扩容(基于Kubernetes HPA),无需人工干预,避免流量激增扩容不及时导致系统故障,以及平时大量闲置资源造成的浪费。在使用阿里云容器服务ACK场景下,支持将一个应用按比例部署到ECS或ECI上,提供更高效的资源利用率、更快的扩容速度、更健壮的系统可靠性和更低成本。

[*]

高弹性
快速秒级扩容,可轻松应对百倍突发流量,同时支持HPA及CronHPA。
[*]

低成本
根据流量动态使用资源,按需付费。
[*]

高可用
精细化应用伸缩,扩容时保留固定N个副本在ECS上运行,第N+1个以上副本调度到ECI;缩容时优先回收ECI上的Pod副本。

<h3>在线业务托管</h3>
基于阿里云容器服务Kubernetes版提供完全托管的Kubernetes集群和免运维的基础设施,您不再需要配置单独的运维人员,只需要关注业务应用的定义,由阿里云负责Kubernetes集群及底层基础设施的运维和管理。同时,通过配置弹性伸缩,能够根据流量自动扩缩容,降低运行成本。

[*]

免运维
不需要管理集群,也不需要管理工作节点,只需要定义应用、服务和任务。
[*]

低成本
根据流量动态使用资源,按需付费。
[*]

兼容性
支持有状态StatefulSet 、无状态Deployment 、任务Job和定时任务CronJob。

<h3>数据处理任务</h3>
在处理大批量的在线数据并发任务时,可以不再因为成本原因受限于底层资源,导致数据处理任务并发度受限。能够在短时间内快速创建大量工作节点,满足业务的大数据及AI在线处理诉求。在使用阿里云容器服务Kubernetes版的场景下,已经无缝支持在Kubernetes上部署Spark或Presto。

[*]

兼容性
完全兼容Spark/Kubernetes生态,无需做业务改造。
[*]

低成本
提交作业前无需预留资源,所有资源随作业提交自动申请,在作业结束后释放。
[*]

高并发
提供作业的快速启动和大规模并发能力,无需关心集群的扩缩容和资源。

<h3>事件驱动型业务</h3>
ECI作为Serverless的容器基础设施,通过事件触发,提供高并发、低成本的容器实例调度及事件处理能力。例如:在线教育行业的录制和转码。

[*]

高并发
提供大规模的资源供应能力。
[*]

高弹性
秒级启动和弹性伸缩,提供高并发事件和任务处理能力。
[*]

低成本
容器实例根据资源规格及使用时长付费,在事件和任务处理结束后停止收费。

<h3>CI/CD测试环境</h3>
对接CI/CD流程,自动完成容器部署、应用打包和测试用例执行。支持随时创建和释放容器实例,能够提供低成本的大规模资源供应,应对在CI/CD过程中的批量测试任务,例如:自动驾驶行业在开发测试阶段的全量自动驾驶仿真模拟。

[*]

高弹性
支持高并发,支持CPU、GPU;适合CI打包、压力测试、仿真测试。
[*]

低成本
按需使用,按秒计费,测试完成释放资源,降低CI/CD成本。
[*]

深度整合
与CI流程整合,提交待发布版本后,直接触发压力测试和仿真测试;支持Kubernetes标准OpenAPI。

<h2>五、阿里云弹性容器实例基本概念</h2>
使用ECI前,建议您先了解相关概念,以便更好地使用产品。
<h3>ECI相关概念</h3>
使用ECI涉及的相关概念如下表所示。
<table>
<thead>
<tr>
<th>概念</th>
<th>说明</th>
</tr>
</thead>
<tbody>
<tr>
<td>容器(Container)</td>
<td>容器是轻量的、可执行的独立软件包,是镜像运行的实体。</td>
</tr>
<tr>
<td>容器组(Container Group)</td>
<td>容器组是一组可以被调度到同一台宿主机上的容器集合。这些容器共同构成了容器组的生命周期,并共享容器组的网络和存储资源。一个容器组即一个ECI实例,其概念与Kubernetes的Pod概念类似。</td>
</tr>
<tr>
<td>镜像(Image)</td>
<td>镜像是一个特殊的文件系统,包含容器应用运行所需的程序、库文件、配置等。Docker镜像是容器应用打包的标准格式,在部署容器化应用时,您需要指定镜像,该镜像可以来自于Docker Hub、阿里云镜像服务ACR或者您的私有Registry。</td>
</tr>
<tr>
<td>镜像缓存(ImageCache)</td>
<td>镜像缓存用于加速拉取镜像,减少ECI实例启动耗时。受网络、镜像大小等因素影响,镜像拉取是ECI实例启动的主要耗时,提前制作镜像缓存可以加速拉取镜像。</td>
</tr>
<tr>
<td>数据卷(Volume)</td>
<td>数据卷是容器组的共享存储资源。您可以将外部数据卷挂载到指定的容器组,容器组中声明的数据卷由容器组中的所有容器共享。</td>
</tr>
<tr>
<td>标签(Tag)</td>
<td>标签是附加在容器组上的一系列Key/Value键值对。标签需要在创建容器组时赋予,每个容器组最多可以拥有10个标签,其中key值必须唯一。标签的概念与Kubernetes的Label概念类似。</td>
</tr>
<tr>
<td>虚拟节点(Virtual Node)</td>
<td>基于Kubernetes社区的Virtual Kubelet技术,ECI可以通过虚拟节点的方式接入到Kubernetes集群中,即ECI实例并不会运行在一个集中式的真实节点上,而是会被打散分布在整个阿里云的资源池中。</td>
</tr>
</tbody>
</table>
<h3>Kubernetes相关概念</h3>
如果您使用Kubernetes来管理您的ECI实例,您需要了解Kubernetes的相关概念。主要概念如下表所示:
<table>
<thead>
<tr>
<th>概念</th>
<th>说明</th>
</tr>
</thead>
<tbody>
<tr>
<td>Master</td>
<td>Kubernetes集群中的控制节点,负责整个集群的管理和调度。</td>
</tr>
<tr>
<td>Node</td>
<td>Kubernetes集群中真正运行工作负载的工作节点。当某个Node宕机时,其上的工作负载会被Master自动转移到其他Node上。</td>
</tr>
<tr>
<td>Pod</td>
<td>Kubernetes中创建或部署的最小单元。一个Pod代表集群上正在运行的一个进程,封装了一个或多个紧密相关的容器。</td>
</tr>
<tr>
<td>Deployment</td>
<td>无状态工作负载。Pod上的一个抽象,可以定义一组Pod的副本数、版本等。</td>
</tr>
<tr>
<td>StatefulSet</td>
<td>有状态工作负载。和Deployment类似,用于管理一组Pod,不同的是StatefulSet可以为这些Pod提供持久化存储和持久标识符。</td>
</tr>
<tr>
<td>Service</td>
<td>用于为一组Pod提供一个统一的、稳定的访问地址。</td>
</tr>
<tr>
<td>ConfigMap</td>
<td>用于保存配置数据的键值对,可以用来保存单个属性,也可以用来保存配置文件。</td>
</tr>
<tr>
<td>Namespace</td>
<td>集群内部的逻辑隔离,用于划分、管理资源对象。</td>
</tr>
<tr>
<td>Label</td>
<td>可以附加在各种资源对象上的一系列Key/Value键值对。为指定的资源对象绑定一个或多个不同的Label,可以实现多维度的资源分组管理。</td>
</tr>
<tr>
<td>Volume</td>
<td>Pod中能够被多个容器访问的文件目录。一个数据卷可以挂载在Pod中的一个或多个容器的指定路径下。</td>
</tr>
<tr>
<td>PersistentVolume</td>
<td>PV,存储卷。集群中由管理员配置的存储资源。</td>
</tr>
<tr>
<td>PersistentVolumeClaim</td>
<td>PVC,存储声明。用于表达用户对存储资源的请求。</td>
</tr>
</tbody>
</table>

更多阿里云阿里云弹性容器实例产品详情及相关活动请参考:
1.阿里云弹性容器实例产品详情:https://www.aliyun.com/product/eci
2.最新活动页面:https://www.aliyun.com/activity
3.免费试用中心:https://free.aliyun.com/
4.云小站(代金券发布平台):https://www.aliyun.com/minisite/goods



https://upload-images.jianshu.io/upload_images/19316870-786dcc9455fea270.png

<div class="image-caption">云小站代金券图.png
页: [1]
查看完整版本: 什么是阿里云弹性容器实例?弹性容器实例产品优势及应用场景介绍