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

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

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

弹性容器实例优势.png

一、什么是弹性容器实例

1.产品概述

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

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

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

p441532.png

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

  • 通过阿里云ACK Serverless集群部署业务,支持基于Kubernetes的容器服务全托管,提供无需运维的Kubernetes集群能力,底层Pod资源全部使用ECI承载。

  • 通过阿里云ACK集群部署业务,为您的ACK集群提供额外的海量弹性能力。

  • 通过Virtual Kubelet对接您在ECS上或者线下IDC自建的Kubernetes集群,提供方便快捷的计算资源。

  • 通过OpenAPI对接您的业务系统,您可以根据需要,低成本地随时创建或释放ECI容器,无需担心并发和容量。

2.产品架构

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

p441564.png

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

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特别适用于弹性和并发场景的业务,主要应用场景如下图所示。

p208325.png

在线业务弹性扩容

根据业务流量自动对业务进行扩容(基于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。

以上是阿里云弹性容器实例的产品概述、实例功能特性、应用场景以及弹性容器实例介绍,更多弹性容器实例详情参考:https://www.aliyun.com/product/eci

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

使用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的相关概念。主要概念如下表所示:

概念 说明
Master Kubernetes集群中的控制节点,负责整个集群的管理和调度。
Node Kubernetes集群中真正运行工作负载的工作节点。当某个Node宕机时,其上的工作负载会被Master自动转移到其他Node上。
Pod Kubernetes中创建或部署的最小单元。一个Pod代表集群上正在运行的一个进程,封装了一个或多个紧密相关的容器。
Deployment 无状态工作负载。Pod上的一个抽象,可以定义一组Pod的副本数、版本等。
StatefulSet 有状态工作负载。和Deployment类似,用于管理一组Pod,不同的是StatefulSet可以为这些Pod提供持久化存储和持久标识符。
Service 用于为一组Pod提供一个统一的、稳定的访问地址。
ConfigMap 用于保存配置数据的键值对,可以用来保存单个属性,也可以用来保存配置文件。
Namespace 集群内部的逻辑隔离,用于划分、管理资源对象。
Label 可以附加在各种资源对象上的一系列Key/Value键值对。为指定的资源对象绑定一个或多个不同的Label,可以实现多维度的资源分组管理。
Volume Pod中能够被多个容器访问的文件目录。一个数据卷可以挂载在Pod中的一个或多个容器的指定路径下。
PersistentVolume PV,存储卷。集群中由管理员配置的存储资源。
PersistentVolumeClaim PVC,存储声明。用于表达用户对存储资源的请求。
相关实践学习
基于ACK Serverless轻松部署企业级Stable Diffusion
本实验指导您在容器服务Serverless版(以下简称 ACK Serverless )中,通过Knative部署满足企业级弹性需求的Stable Diffusion服务。同时通过对该服务进行压测实验,体验ACK Serverless 弹性能力。
Kubernetes极速入门
Kubernetes(K8S)是Google在2014年发布的一个开源项目,用于自动化容器化应用程序的部署、扩展和管理。Kubernetes通常结合docker容器工作,并且整合多个运行着docker容器的主机集群。 本课程从Kubernetes的简介、功能、架构,集群的概念、工具及部署等各个方面进行了详细的讲解及展示,通过对本课程的学习,可以对Kubernetes有一个较为全面的认识,并初步掌握Kubernetes相关的安装部署及使用技巧。本课程由黑马程序员提供。   相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
相关文章
|
1月前
|
运维 Kubernetes 监控
提升运维效率:容器化技术在现代IT基础设施中的应用
本文将探讨容器化技术如何优化企业的IT基础设施,提高部署效率和资源利用率。我们将深入分析容器技术的优势、实现步骤以及在实际运维中的应用场景。通过实例展示,帮助读者更好地理解并应用这一前沿技术,助力企业实现高效运维。
|
2天前
|
运维 开发者 Docker
Docker Compose:简化容器化应用的部署与管理
Docker Compose:简化容器化应用的部署与管理
|
8天前
|
JavaScript 持续交付 Docker
解锁新技能:Docker容器化部署在微服务架构中的应用
【10月更文挑战第29天】在数字化转型中,微服务架构因灵活性和可扩展性成为企业首选。Docker容器化技术为微服务的部署和管理带来革命性变化。本文探讨Docker在微服务架构中的应用,包括隔离性、可移植性、扩展性、版本控制等方面,并提供代码示例。
41 1
|
2天前
|
前端开发 开发者 Docker
深入探索Docker Compose:简化多容器应用的部署
深入探索Docker Compose:简化多容器应用的部署
11 0
|
28天前
|
运维 JavaScript 虚拟化
探索容器化技术:Docker的实践与应用
【10月更文挑战第9天】探索容器化技术:Docker的实践与应用
47 3
|
1月前
|
Kubernetes Cloud Native 云计算
云原生之旅:构建你的第一个容器化应用
【8月更文挑战第75天】在数字化浪潮中,云原生技术成为推动企业创新和效率提升的关键动力。本篇文章将引导你开启云原生之旅,通过一个简易的步骤指南,帮助你构建并部署第一个容器化应用。我们将一起探索Docker容器的魅力,以及如何利用Kubernetes进行集群管理,实现服务的自动化部署、扩展和管理。无论你是云原生新手还是希望深化理解,这篇文章都将为你提供实践操作的启示和深入思考的契机。
|
1月前
|
存储 编译器 C++
【C++篇】揭开 C++ STL list 容器的神秘面纱:从底层设计到高效应用的全景解析(附源码)
【C++篇】揭开 C++ STL list 容器的神秘面纱:从底层设计到高效应用的全景解析(附源码)
53 2
|
23天前
|
运维 JavaScript Linux
容器内的Nodejs应用如何获取宿主机的基础信息-系统、内存、cpu、启动时间,以及一个df -h的坑
本文介绍了如何在Docker容器内的Node.js应用中获取宿主机的基础信息,包括系统信息、内存使用情况、磁盘空间和启动时间等。核心思路是将宿主机的根目录挂载到容器,但需注意权限和安全问题。文章还提到了使用`df -P`替代`df -h`以获得一致性输出,避免解析错误。
|
25天前
|
XML Java 数据格式
Spring IOC容器的深度解析及实战应用
【10月更文挑战第14天】在软件工程中,随着系统规模的扩大,对象间的依赖关系变得越来越复杂,这导致了系统的高耦合度,增加了开发和维护的难度。为解决这一问题,Michael Mattson在1996年提出了IOC(Inversion of Control,控制反转)理论,旨在降低对象间的耦合度,提高系统的灵活性和可维护性。Spring框架正是基于这一理论,通过IOC容器实现了对象间的依赖注入和生命周期管理。
61 0
|
1月前
|
运维 监控 Cloud Native
深入了解容器化技术:Docker 的应用与实践
【10月更文挑战第6天】深入了解容器化技术:Docker 的应用与实践
39 0

相关产品

  • 弹性容器实例
  • 下一篇
    无影云桌面