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

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

一、什么是弹性容器实例

1.产品概述

弹性容器实例(简称ECI)是阿里云结合容器和Serverless技术为您提供的容器运行服务。通过使用ECI,在阿里云上部署容器时,您无需购买和管理云服务器ECS,只需提供打包好的Docker镜像,即可在阿里云上运行容器。

从购买配置ECS再部署容器(ECS模式)到直接部署容器(ECI模式),ECI为您省去了底层服务器的运维和管理工作,让您专注于业务开发,提升开发效率。同时,您仅需要为容器实际运行消耗的资源付费,可以节约使用成本。

使用ECI时,您既可以借助OpenAPI将ECI接入到您已有的业务系统中,通过OpenAPI和控制台直接快速部署容器应用;也可以通过Virtual Kubelet对接Kubernetes集群,借助ECI的弹性能力轻松应对突发业务流量。

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

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

2.产品架构

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

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

p202802.png

p202802.png

3.产品计费

使用弹性容器实例时,涉及收费的资源如下:

资源计费说明
ECI实例(计算资源)根据您创建ECI实例的方式,支持两种计费模式:
- 按vCPU和内存
- 按ECS规格
镜像缓存创建镜像缓存:手动创建需支付临时资源费用和快照费用;自动创建无需付费。
使用镜像缓存:根据镜像缓存类型和大小,可能需要额外支付云盘或临时存储空间费用。
数据缓存创建数据缓存:需支付临时资源费用和快照费用。
使用数据缓存:需要额外支付云盘费用。
临时存储空间创建ECI实例时,如果增加了临时存储空间大小,需为其付费。

二、阿里云弹性容器实例功能特性

下面介绍弹性容器实例的功能特性。

1.容器运行服务

弹性容器实例是敏捷安全的Serverless容器运行服务。一个ECI实例对应一个容器组(即一个Pod),包含vCPU、内存、操作系统、容器运行时、网络、临时存储等基础组件。

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

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

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

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

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

镜像缓存
支持镜像缓存功能加速ECI实例创建,减少实例启动耗时。

2.兼容Kubernetes

基于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。

3.集成云上服务

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

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

三、阿里云弹性容器实例产品优势

弹性容器实例为您提供免运维、弹性、低成本、高效的容器运行环境。

核心优势

弹性容器实例的核心优势主要体现在以下几方面:

  • 免运维
    采用Serverless架构,基础设施托管。您无需关心底层服务器,只需要提交容器镜像;无需预先创建集群和维护集群,无需关注运行过程中的容量规划,可以专注业务领域创新。
  • 灵活部署
    以阿里云全球计算基础设施作为资源池,提供海量、高并发、多种资源类型(CPU、高主频、GPU等)的容器计算资源,您可以根据需要灵活部署。
  • 低成本
    按实例启动到结束时间段内消耗的资源计费,时长精确到秒。配合Kubernetes或者您自建的调度系统,ECI可根据业务流量自动弹性伸缩,减少空置费用。
  • 高弹性
    支持快速秒级启动实例,您无需提前预估集群容量和业务流量,可以按需扩容,轻松应对百倍的业务突发流量。
  • 兼容性
    兼容Kubernetes,Kubernetes集群上的Pod能直接调度至ECI。支持无缝集成至阿里云容器服务Kubernetes版,同时支持通过virtual kubelet对接您自建的Kubernetes集群。
  • 集成
    自动集成阿里云的其它服务,可快速实现网络访问、日志采集、数据持久化存储、服务监控等功能。例如:日志服务SLS、文件存储NAS、监控服务ARMS等。

优势对比

ECI的核心是容器组,它的概念与Kubernetes的Pod概念完全兼容。使用ECI作为容器运行环境,可以为您的业务系统提供更高的弹性和安全性,同时降低使用和运维成本。

阿里云各类容器服务运行环境的对比如下表所示。

对比项弹性容器实例云服务器ECS弹性裸金属服务器
成本只为Pod付费,节约成本。为ECS整体付费。为裸金属服务器整体付费。
运维无需管理节点,运维简单,成本低。需要自行管理节点,运维ECS。需要自行管理节点,运维裸金属服务器。
性能小幅虚拟化损耗。秒级启动,无需预留资源。小幅虚拟化损耗。无虚拟化损耗。
弹性最好。支持小规格,提供更多库存。相对好。相对一般。
安全Pod之间强隔离,安全性更高。ECS之间强隔离,Pod之间弱隔离。服务器之间强隔离,Pod之间弱隔离。
宕机率极低。影响单个Pod,对业务基本无影响。极低。影响单台ECS,包括部署在该ECS的Pod。极低。影响单台服务器,包括部署在该服务器的Pod。

四、阿里云弹性容器实例应用场景

弹性容器实例适用于容器形态下大部分业务场景,从弹性及成本角度,特别适用于在线业务的免运维托管、大数据计算任务(Spark、Presto)、事件驱动型业务和Job型业务,以及DevOps、机器学习、在线测试等各类场景。

概述

弹性容器实例可以通过以下方式对接您的业务系统:

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

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

在线业务弹性扩容

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

  • 高弹性
    快速秒级扩容,可轻松应对百倍突发流量,同时支持HPA及CronHPA。
  • 低成本
    根据流量动态使用资源,按需付费。
  • 高可用
    精细化应用伸缩,扩容时保留固定N个副本在ECS上运行,第N+1个以上副本调度到ECI;缩容时优先回收ECI上的Pod副本。

在线业务托管

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

  • 免运维
    不需要管理集群,也不需要管理工作节点,只需要定义应用、服务和任务。
  • 低成本
    根据流量动态使用资源,按需付费。
  • 兼容性
    支持有状态StatefulSet 、无状态Deployment 、任务Job和定时任务CronJob。

数据处理任务

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

  • 兼容性
    完全兼容Spark/Kubernetes生态,无需做业务改造。
  • 低成本
    提交作业前无需预留资源,所有资源随作业提交自动申请,在作业结束后释放。
  • 高并发
    提供作业的快速启动和大规模并发能力,无需关心集群的扩缩容和资源。

事件驱动型业务

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

  • 高并发
    提供大规模的资源供应能力。
  • 高弹性
    秒级启动和弹性伸缩,提供高并发事件和任务处理能力。
  • 低成本
    容器实例根据资源规格及使用时长付费,在事件和任务处理结束后停止收费。

CI/CD测试环境

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

  • 高弹性
    支持高并发,支持CPU、GPU;适合CI打包、压力测试、仿真测试。
  • 低成本
    按需使用,按秒计费,测试完成释放资源,降低CI/CD成本。
  • 深度整合
    与CI流程整合,提交待发布版本后,直接触发压力测试和仿真测试;支持Kubernetes标准OpenAPI。

五、阿里云弹性容器实例基本概念

使用ECI前,建议您先了解相关概念,以便更好地使用产品。

ECI相关概念

使用ECI涉及的相关概念如下表所示。

概念说明
容器(Container)容器是轻量的、可执行的独立软件包,是镜像运行的实体。
容器组(Container Group)容器组是一组可以被调度到同一台宿主机上的容器集合。这些容器共同构成了容器组的生命周期,并共享容器组的网络和存储资源。
一个容器组即一个ECI实例,其概念与Kubernetes的Pod概念类似。
镜像(Image)镜像是一个特殊的文件系统,包含容器应用运行所需的程序、库文件、配置等。Docker镜像是容器应用打包的标准格式,在部署容器化应用时,您需要指定镜像,该镜像可以来自于Docker Hub、阿里云镜像服务ACR或者您的私有Registry。
镜像缓存(ImageCache)镜像缓存用于加速拉取镜像,减少ECI实例启动耗时。受网络、镜像大小等因素影响,镜像拉取是ECI实例启动的主要耗时,提前制作镜像缓存可以加速拉取镜像。
数据卷(Volume)数据卷是容器组的共享存储资源。您可以将外部数据卷挂载到指定的容器组,容器组中声明的数据卷由容器组中的所有容器共享。
标签(Tag)标签是附加在容器组上的一系列Key/Value键值对。标签需要在创建容器组时赋予,每个容器组最多可以拥有10个标签,其中key值必须唯一。
标签的概念与Kubernetes的Label概念类似。
虚拟节点(Virtual Node)基于Kubernetes社区的Virtual Kubelet技术,ECI可以通过虚拟节点的方式接入到Kubernetes集群中,即ECI实例并不会运行在一个集中式的真实节点上,而是会被打散分布在整个阿里云的资源池中。

Kubernetes相关概念

如果您使用Kubernetes来管理您的ECI实例,您需要了解Kubernetes的相关概念。主要概念如下表所示:

概念说明
MasterKubernetes集群中的控制节点,负责整个集群的管理和调度。
NodeKubernetes集群中真正运行工作负载的工作节点。当某个Node宕机时,其上的工作负载会被Master自动转移到其他Node上。
PodKubernetes中创建或部署的最小单元。一个Pod代表集群上正在运行的一个进程,封装了一个或多个紧密相关的容器。
Deployment无状态工作负载。Pod上的一个抽象,可以定义一组Pod的副本数、版本等。
StatefulSet有状态工作负载。和Deployment类似,用于管理一组Pod,不同的是StatefulSet可以为这些Pod提供持久化存储和持久标识符。
Service用于为一组Pod提供一个统一的、稳定的访问地址。
ConfigMap用于保存配置数据的键值对,可以用来保存单个属性,也可以用来保存配置文件。
Namespace集群内部的逻辑隔离,用于划分、管理资源对象。
Label可以附加在各种资源对象上的一系列Key/Value键值对。为指定的资源对象绑定一个或多个不同的Label,可以实现多维度的资源分组管理。
VolumePod中能够被多个容器访问的文件目录。一个数据卷可以挂载在Pod中的一个或多个容器的指定路径下。
PersistentVolumePV,存储卷。集群中由管理员配置的存储资源。
PersistentVolumeClaimPVC,存储声明。用于表达用户对存储资源的请求。

更多阿里云阿里云弹性容器实例产品详情及相关活动请参考:
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://www.tengxunyun8.com/7417.html
版权所有,如未注明,均为原创,转载请注明