2026阿里云国际版弹性容器实例ECI实战教程:Serverless容器按秒计费与ACK/ASK联动全攻略

📅 · 阿里云国际版实战教程 - ChengziCloud

一句话结论

Meta Description: 手把手讲解阿里云国际版弹性容器实例ECI(Elastic Container Instance):核心概念、按秒计费参考价格表、ECI vs ECS vs ACK节点池 vs ASK选型对比、aliyun CLI创建容器组实操、镜像与公网访问配置、ACK虚拟节点弹…

本文要点
  • 先给结论:ECI 到底解决什么问题
  • ECI 核心概念:搞懂这五件事就不会迷路
  • ECI 价格与计费模型:按秒计费到底贵不贵
  • 实操一:用 aliyun CLI 创建第一个 ECI 容器组
  • 实操二:让容器真正能被公网访问
  • 实操三:ACK 虚拟节点——把 Pod 甩给 ECI
  • 实操四:云盘与 NAS 存储挂载
  • 成本优化:把 ECI 账单压下来的六个动作

Meta Description: 手把手讲解阿里云国际版弹性容器实例ECI(Elastic Container Instance):核心概念、按秒计费参考价格表、ECI vs ECS vs ACK节点池 vs ASK选型对比、aliyun CLI创建容器组实操、镜像与公网访问配置、ACK虚拟节点弹性伸缩、云盘与NAS存储挂载、成本优化与避坑清单,附常见问题FAQ。

关键词:阿里云国际版ECI、弹性容器实例教程、Serverless容器、ECI价格、ACK虚拟节点、ASK弹性伸缩、ECI计费、容器组

一、先给结论:ECI 到底解决什么问题

如果你已经习惯了"买一台 ECS、装 Docker、跑容器"这套流程,那么你其实绕了一个大圈:你为了跑一个容器,先养了一整台服务器的操作系统。ECI 存在的意义,就是把这台"中间的服务器"从你的账单和运维清单里彻底删掉。

一句话定义:ECI(Elastic Container Instance,弹性容器实例)是阿里云提供的 Serverless 容器运行服务。你提交一个容器镜像、一份 vCPU/内存规格,几秒钟后拿到一个正在运行的容器——不需要选实例规格族、不需要装操作系统、不需要打补丁、不需要为闲置时间付费。

它最适合三类人:

  • 跑一次性任务的开发者:CI/CD 构建、数据清洗、爬虫抓取、批量图片转码——任务几十分钟跑完就该关机,按量 ECS 的最小计费单位会让你为大量闲置时间买单。
  • 做 K8s 但不想管节点的团队:通过 ACK 的虚拟节点(Virtual Node),Pod 直接调度到 ECI 上执行,集群里没有 Node 可以打补丁、没有节点池需要缩容,集群容量随业务自然伸缩。
  • 流量波动剧烈的业务:白天 200 个 Pod、凌晨 5 个 Pod,用节点池就只能"按峰值买节点",用 ECI 就是"用多少付多少"。

不适用:需要长期常驻、负载平稳(比如 7×24 的数据库、固定流量的 Web 服务)。这类负载用包年包月的 ECS 或预留实例,单位成本会明显低于 ECI 的按秒计费。

📝 小提示:ECI 在阿里云国际站(alibabacloud.com)以控制台显示为准,功能与国内版基本一致,但地域覆盖、计费币种与促销政策存在差异,不要直接照搬国内版的文档链接与价格。

二、ECI 核心概念:搞懂这五件事就不会迷路

2.1 容器组(Container Group)是调度单位

ECI 的最小单位不是"一个容器",而是容器组——一个容器组可以包含多个容器,它们共享网络命名空间(同一个 IP、同一个端口空间)和存储卷。这一点和 K8s 的 Pod 完全对应,事实上 ECI 的容器组就是为 Pod 而生。

关键约束:同一个容器组内的多个容器不能用同一个端口。如果你把 Nginx 和另一个也要监听 80 的容器塞进同一个组,创建会直接失败。解决办法是把它们拆成两个容器组,或者让其中一个换端口。

2.2 规格由 vCPU + 内存组合决定,可精细到 0.25 核

ECI 不需要你选 ecs.g7.large 这类固定规格,而是直接指定:

  • vCPU:0.25 / 0.5 / 1 / 2 / 4 / 8 ...(按 0.25 递增的细粒度)
  • 内存:与 vCPU 有配比区间约束,通常 1 vCPU 可配 0.5–8 GiB

这种"点菜式"规格的意义在于:一个只需要 0.5 核 1 GiB 的定时任务,你可以真的只买 0.5 核 1 GiB,而不是被迫买一整台 1 核 2 GiB 的 ECS。

2.3 镜像来自 ACR 或公网仓库

ECI 拉取镜像的两个来源:

  • ACR(容器镜像服务):推荐。同地域走 VPC 内网地址拉取,速度快且不消耗公网流量;私有镜像需要配置 ImageRegistryCredential。
  • 公网镜像仓库(Docker Hub 等):可以,但跨境拉取慢、易超时,且部分镜像在特定地域拉不动。

如果你还没用过 ACR,建议先看:阿里云国际版容器镜像服务 ACR 实战教程

2.4 网络:VPC + 安全组 + 弹性公网 IP

ECI 必须落到一个 VPC 和交换机(vSwitch)里,安全组规则决定进出流量。要让它被公网访问,有两种方式:

  • 直接绑定 EIP:适合单个容器组需要独立公网 IP 的场景。
  • 放到 SLB/ALB 后端:生产推荐,多容器组共用入口、可做健康检查与负载均衡。

2.5 存储:临时盘免费,云盘和 NAS 要单独买

ECI 自带一块临时存储(通常免费额度为 20 GiB 左右),随容器销毁而消失。需要持久化的数据必须挂载:

  • 云盘(ESSD):块存储,适合数据库、需要文件系统语义的场景。
  • NAS:网络文件系统,可多容器组共享读写,最适合"多副本共享同一份静态资源"。

三、ECI 价格与计费模型:按秒计费到底贵不贵

ECI 的计费逻辑非常直白:(vCPU 数 × vCPU 单价 + 内存 GB 数 × 内存单价)× 运行秒数,不足一秒按一秒算,停止即停止计费。没有开机费、没有最低消费时长。

3.1 参考单价(国际站,按量付费)

计费项参考单价折算每小时说明
vCPU约 $0.0000154 / vCPU·秒约 $0.055 / vCPU·h按实际 vCPU 数线性计费
内存约 $0.0000077 / GB·秒约 $0.028 / GB·h按实际内存 GiB 线性计费
临时存储20 GiB 内通常免费—超出部分按云盘价计
云盘(ESSD PL1)约 $0.00014 / GiB·h约 $0.10 / GiB·月挂载才计费,可随容器释放
公网流量约 $0.08 / GB 起—各地区不同,出方向计费

⚠️ 以上单价为写作时的参考值,价格可能变动,请以阿里云国际版官网实时价格为准。

3.2 常见规格的每小时成本估算

规格(vCPU / 内存)每小时参考成本连续跑满 30 天估算典型用途
0.25 vCPU / 0.5 GiB约 $0.028约 $20定时任务、轻量探针
0.5 vCPU / 1 GiB约 $0.056约 $41Cron 脚本、小爬虫
1 vCPU / 2 GiB约 $0.111约 $81单个 Web 服务、CI 构建
2 vCPU / 4 GiB约 $0.223约 $163中等 API 服务
4 vCPU / 8 GiB约 $0.446约 $326转码、批处理

这张表最有价值的读法不是看月费,而是看"你实际需要它跑多久"。 一个每天只跑 30 分钟的构建任务,1 vCPU / 2 GiB 的成本是 0.111 × 0.5 × 30 ≈ $1.67/月——同规格的按量 ECS 因为要常驻,账单是它的 40 倍以上。

3.3 四种容器方案怎么选

维度ECI 直接使用ECS 按量 + DockerACK 托管节点池ASK(ACK Serverless)
是否需要管节点完全不需要需要部分托管完全不需要
启动速度秒级分钟级(含开机与镜像拉取)分钟级(节点扩容)秒级
计费粒度秒秒/小时节点·小时Pod 规格·秒
最小规格0.25 vCPU1 vCPU整节点0.25 vCPU
运维负担极低高(OS 补丁、Docker 升级)中极低
最佳场景一次性任务、单容器、CI长驻稳定服务负载平稳的 K8s波动剧烈的 K8s

决策树:只是跑个任务或单个容器 → ECI;已经有 K8s 且负载波动 → 加虚拟节点走 ASK;负载平稳且长期运行 → 老老实实包年包月 ECS。

四、实操一:用 aliyun CLI 创建第一个 ECI 容器组

准备工作:安装 aliyun CLI 并配置好国际站 AccessKey。


// 1. 安装 CLI(Linux/macOS)
curl -fsSL https://aliyuncli.alicdn.com/aliyun-cli-linux-latest-amd64.tgz -o aliyun-cli.tgz
tar -xzf aliyun-cli.tgz && mv aliyun /usr/local/bin/

// 2. 配置国际站凭证(注意 endpoint 用国际站)
aliyun configure set \
  --profile default \
  --mode AK \
  --access-key-id LTAIxxxxxxxxxxxx \
  --access-key-secret xxxxxxxxxxxxxxxxxxxx \
  --region ap-southeast-1

// 3. 确认当前身份
aliyun sts GetCallerIdentity

创建容器组前,先准备好三个参数:安全组 ID、交换机 ID、镜像地址。


// 创建安全组(允许 80 端口入方向)
aliyun ecs CreateSecurityGroup \
  --RegionId ap-southeast-1 \
  --VpcId vpc-xxxxxxxx \
  --SecurityGroupName eci-demo-sg

aliyun ecs AuthorizeSecurityGroup \
  --RegionId ap-southeast-1 \
  --SecurityGroupId sg-xxxxxxxx \
  --IpProtocol tcp --PortRange 80/80 --SourceCidrIp 0.0.0.0/0

然后用 CreateContainerGroup 创建容器组,配置写在 JSON 文件里避免命令行转义地狱:


{
  "RegionId": "ap-southeast-1",
  "ZoneId": "ap-southeast-1a",
  "ContainerGroupName": "nginx-demo",
  "VSwitchId": "vsw-xxxxxxxx",
  "SecurityGroupId": "sg-xxxxxxxx",
  "InstanceType": "ecs.c6.xlarge",
  "Cpu": 1.0,
  "Memory": 2.0,
  "RestartPolicy": "Always",
  "AutoCreateEip": true,
  "EipBandwidth": 5,
  "Containers": [
    {
      "Name": "nginx",
      "Image": "registry-intl.ap-southeast-1.aliyuncs.com/demo/nginx:1.25",
      "Cpu": 1.0,
      "Memory": 2.0,
      "Ports": [
        { "Port": 80, "Protocol": "TCP" }
      ]
    }
  ]
}

// 提交创建请求
aliyun eci CreateContainerGroup --cli-input-json file://eci-nginx.json

// 查询容器组状态(Running 即成功)
aliyun eci DescribeContainerGroups \
  --RegionId ap-southeast-1 \
  --ContainerGroupIds eci-xxxxxxxxxxxx \
  --query 'ContainerGroups[0].{Status:Status,Ip:IntranetIp,PublicIp:InternetIp}'

📝 小提示:InstanceType 字段不是让你选固定规格,而是告诉 ECI 底层优先用哪类资源的库存,ECI 会按你指定的 Cpu/Memory 实际计费。它必须与你的 vCPU/内存配比兼容,否则会报参数错误。

五、实操二:让容器真正能被公网访问

容器组创建成功、状态变成 Running 之后,很多人卡在"我拿到内网 IP 了,但公网打不开"。按顺序排查这四步:

第一步,确认是否有公网 IP。 如果创建时没有 AutoCreateEip: true,容器组只有内网 IP。可以后续手动绑定:


// 申请 EIP
aliyun vpc AllocateEipAddress --RegionId ap-southeast-1 --Bandwidth 5 --InternetChargeType PayByTraffic

// 绑定到容器组
aliyun eci AssociateEipAddress \
  --RegionId ap-southeast-1 \
  --AllocationId eip-xxxxxxxx \
  --InstanceType ContainerGroup \
  --InstanceId eci-xxxxxxxxxxxx

第二步,确认端口声明了。 Ports 数组里没写的端口,即使容器内部监听了,也不会被映射。

第三步,确认安全组放行了。 这是最高频的漏项——EIP 有了、端口声明了,但安全组没开 80,curl 依然超时。

第四步,确认容器内部真的在监听。 用 DescribeContainerLog 看启动日志:


aliyun eci DescribeContainerLog \
  --RegionId ap-southeast-1 \
  --ContainerGroupId eci-xxxxxxxxxxxx \
  --ContainerName nginx \
  --Tail 50

生产环境不要用 EIP。 正确做法是把 ECI 作为 ALB/SLB 的后端服务器组,由负载均衡统一对外。参考:阿里云国际版负载均衡 SLB 实战教程

六、实操三:ACK 虚拟节点——把 Pod 甩给 ECI

这是 ECI 在生产中最有价值的用法。原理很简单:在 ACK 集群里创建一个虚拟节点(Virtual Node),它本质上是一个"指向 ECI 的调度器"。打了对应污点容忍(Toleration)的 Pod,会被调度到这个虚拟节点上,实际由 ECI 拉起——集群里看不到任何 Node 实体,但 Pod 正常跑。

配置步骤:

  1. 进入 ACK 控制台 → 集群 → 节点管理 → 虚拟节点,点击创建。
  2. 选择可用区与交换机,勾选需要调度的命名空间。
  3. 创建完成后,集群里会出现名为 virtual-kubelet 的节点(状态是 Ready)。
  4. 部署时给 Pod 加上对应的容忍与节点选择器:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: burst-app
spec:
  replicas: 10
  selector:
    matchLabels:
      app: burst-app
  template:
    metadata:
      labels:
        app: burst-app
    spec:
      nodeSelector:
        type: virtual-kubelet
      tolerations:
        - key: virtual-kubelet.io/provider
          operator: Exists
      containers:
        - name: app
          image: registry-intl.ap-southeast-1.aliyuncs.com/demo/app:v1
          resources:
            requests:
              cpu: "0.5"
              memory: "1Gi"
            limits:
              cpu: "1"
              memory: "2Gi"

关键点:resources.requests 必须写。 ECI 是按 request 规格去创建容器的,不写 request 就无法确定该开多大规格,Pod 会一直 Pending。这也是为什么 ASK 场景下 request 的精度直接决定账单——request 写 2 核而实际只用 0.3 核,你就在为 1.7 核的浪费付费。

混合调度策略:让常驻的基础负载跑在固定节点池(包年包月成本低),把波峰溢出的副本交给虚拟节点(按秒付费)。这套组合的进一步优化看:阿里云国际版ACK成本优化实战教程

七、实操四:云盘与 NAS 存储挂载

挂载云盘适合单容器独占数据(如本地缓存、单机数据库)。要点:

  • 云盘必须与 ECI 在同一可用区,跨区无法挂载。
  • 一块 ESSD 云盘同一时刻只能挂载到一个容器组(ReadWrite 模式)。
  • 容器组释放后,云盘默认保留(数据不丢),需要显式释放否则会持续计费。

挂载 NAS 适合多容器组共享数据(如上传目录、静态资源、共享配置):


{
  "Volume": {
    "Name": "nas-volume",
    "NFSVolume": {
      "Server": "xxxxxx-xxxx.ap-southeast-1.nas.aliyuncs.com",
      "Path": "/shared",
      "ReadOnly": false
    }
  },
  "VolumeMount": {
    "Name": "nas-volume",
    "MountPath": "/data/shared",
    "ReadOnly": false
  }
}

📝 小提示:NAS 的挂载点必须在 ECI 所在的 VPC 内(挂载点有 VPC 与经典网络之分),跨 VPC 挂载要先打通云企业网。

八、成本优化:把 ECI 账单压下来的六个动作

  1. 把 request 写准,而不是写宽。 ECI 按 request 计费,cpu: "2" 但实际用 0.3 核,就是 85% 的浪费。上线前用监控跑一周,把 request 调到 P95 水平。
  2. 一次性任务跑完就删。 RestartPolicy: Never + 任务结束自动释放,别让一个跑完的容器组挂着计费一整月。
  3. 镜像尽量用 VPC 内网地址拉。 公网拉镜像既慢又产出流量费,同地域用 ACR 的 registry-vpc 地址。
  4. 善用抢占式/Spot 资源。 批处理、CI 构建这类可中断任务,容忍被回收后重试,成本能降一大截。
  5. 日志不要无限制地写到控制台。 大量 stdout 会让日志服务 SLS 的费用悄悄超过计算费用本身。
  6. 建立"容器组僵尸巡检"。 定期列出所有 Running 但长期无流量的容器组——这是 ECI 场景最典型的漏钱点。

九、常见坑与避坑清单

  • 坑一:以为 ECI 有公网 IP。 默认只有内网 IP,公网访问要显式绑 EIP 或走 SLB。
  • 坑二:同一容器组内两个容器抢同一个端口。 共享网络命名空间,端口冲突直接创建失败。
  • 坑三:云盘跨可用区挂载。 报错但不直观,务必确认 ZoneId 一致。
  • 坑四:Pod 一直 Pending。 九成是 resources.requests 没写,或者容器的 request 超过了所选可用区的可售规格。
  • 坑五:忘记清理 EIP。 容器组删了 EIP 还留着,按小时持续计费——这是 ECI 用户最常踩的隐藏扣费。
  • 坑六:误以为所有地域都支持 ECI。 ECI 的地域覆盖比 ECS 窄,新建前先查可用区列表。
  • 坑七:把长驻核心服务全放到 ECI 上。 负载平稳的 7×24 服务,按秒计费一定比包年包月贵,这是计费模型的必然。

十、常见问题 FAQ

  • Q: ECI 和函数计算 FC 有什么区别?我该用哪个?

A: 两者都是 Serverless,但抽象层级不同。ECI 给你一个完整的容器,你有 root、有完整文件系统、可以跑常驻进程(RestartPolicy: Always);FC 给你一个函数,按调用触发、有执行时长上限,冷启动更明显但运维更简单。需要跑现成容器镜像、需要常驻监听端口 → ECI;事件驱动的短时任务、不想管镜像 → FC。FC 的用法见:阿里云国际版函数计算 FC 实战教程

  • Q: ECI 可以像 ECS 一样 SSH 登录吗?

A: 不能直接 SSH。ECI 不暴露操作系统,官方提供 aliyun eci ExecContainerCommand 进入容器执行命令(等价于 docker exec)。如果你的运维体系强依赖 SSH,说明这个负载可能更适合 ECS。

  • Q: ECI 停止后会继续计费吗?

A: 不会。ECI 没有"关机但保留实例"的状态——容器组要么运行要么释放。释放即停计费,但绑定的 EIP 和挂载的云盘会继续单独计费,必须一并清理。

  • Q: 容器组运行中能改规格吗?

A: 不能。vCPU/内存规格在创建时确定,运行中不可变更。要改规格只能重建容器组,这也是为什么建议先用小规格压测、再定正式规格。

  • Q: ECI 能跑有状态服务吗?

A: 技术上可以(挂云盘),但不推荐做主数据库。ECI 的定位是无状态弹性计算,有状态核心服务建议用 RDS 或 PolarDB,参考:阿里云国际版PolarDB云原生数据库实战教程

  • Q: 跨境访问 ECI 上的服务会不会被墙?

A: ECI 本身只是计算资源,是否可达取决于你选的地域和公网出口。面向中国大陆用户的服务,选香港/新加坡等就近地域并按合规要求配置;同时注意国际站到中国大陆的回程线路质量差异很大,务必先实测延迟再决定。

  • Q: 国际站 ECI 和国内版有什么差异?

A: 产品能力基本对齐,差异主要在可用地域、计费币种、促销政策和部分实例规格的库存。跨站使用要特别注意:国际站的 AccessKey 不能用于国内站 endpoint,CLI 配置里要指定正确的 region 与站点。

  • Q: 新手最容易忽略的一步是什么?

A: 一次性任务里忘了设置 RestartPolicy: Never。默认是 Always,任务跑完后容器会被反复拉起,既执行了不该重复的逻辑,又持续产生计费。

十一、总结

ECI 的价值可以浓缩成一句话:它把"为了跑容器而养一台服务器"这件事,从你的架构图和账单里彻底删掉了。

选型记住一个决策树:一次性任务/CI → 直接用 ECI;已有 K8s 且负载波动 → 虚拟节点走 ASK;负载平稳的长期服务 → 包年包月 ECS;事件驱动的函数级任务 → 函数计算 FC。

落地记住三条纪律:request 写准、任务跑完就删、EIP 和云盘记得一起清。 ECI 最大的成本风险从来不是单价高,而是那些"忘了清理的残留资源"和"写宽了的 request"——按秒计费是一把双刃剑,用得精准才省钱。

本文涉及的配置、规格与价格均为写作时的参考,价格可能变动,请以官方为准;开通与购买前请确认当地法规合规性。

相关阅读:

⚠️ 免责声明:本文中提到的配置、价格和优惠信息可能随时间变化,请以阿里云国际版官网(alibabacloud.com)的实时信息为准。本文不构成任何投资或购买建议。注册前请确认当地法规合规性。

本文由 2.chengzicloud.cloud 提供,点击访问首页了解更多