全部产品
云市场

产品概念

更新时间:2019-12-23 15:50:28

阿里云弹性容器实例(Elastic Container Instance)中的核心概念是容器组 (Container Group) 。本文即将为您介绍容器组以及 ECI 相关的其他概念。

容器组(Container Group)

容器组是一组可以被调度到同一台宿主机上的容器集合。这些容器共同构成了容器组的生命周期并共享容器组的网络和存储资源。容器组的概念与 Kubernetes 中 Pod 概念类似。

在部署过程中需要为容器组分配资源。ECI 最小可以分配的资源为 0.25vCPU 和 0.5GB 内存。容器组中的单一容器可以使用的资源不能超过容器组的限制。例如:一个1 vcpu 资源的容器组中可以包含2个分别使用0.5 vcpu 的容器。

Container Group 状态

  • 创建中(Scheduling):容器组创建中。
  • 启动中(Pending):容器组中有一个或者多个容器还在启动中,并且没有处于运行中状态的容器。
  • 运行中(Running):容器组中所有的容器都已被创建,并且至少有一个容器正在运行,或者正处于重启状态。
  • 重启中(Restarting):容器组正在重启。
  • 更新中(Updating):容器组正在更新中。
  • 运行成功(Succeeded):容器组中所有容器都被成功终止,并且不会再重启。
  • 运行失败(Failed):容器组中的所有容器都已终止了,并且至少有一个容器是因为失败终止。也就是说,容器以非0状态退出或者被系统终止。
  • 创建失败(ScheduleFailed):容器组创建失败,24小时后该实例会被系统自动删除,不会收取任何费用。
  • 启动失败(StartingFailed):容器组启动失败,Pending状态持续超过4个小时后,该实例会自动进入启动失败状态并清理计算资源,不会收取任何费用。
  • 等待自动清理(WatingForDel):容器组创建失败1个小时后该实例会自动进入等待自动清理状态,不会收取任何费用。

注意: 容器组的重启策略仅决定组内容器的逻辑行为,容器组不会被自动重启eci-lifecycle

Container 状态

  • 启动中(Wating):容器正在等待创建,还未处于运行状态。一般有InitContainer在运行的时候,应用容器会处于Waiting状态,直到InitContainer退出。
  • 运行中(Running):容器已经创建,并且正在运行。
  • 运行终止(Terminated):容器终止退出,包括成功终止与失败终止。

网络(Network)

容器组内的容器共享相同的 IP 地址和端口号。目前 ECI 支持 VPC 网络弹性公网 IP(EIP)。当您在创建 ECI 时,需要指定 VPC 相关信息以便容器组的网络通信正常。如果您希望在 ECI 中运行的业务能够对外被外部网络访问,有两种方式,1)通过先行创建相关的 EIP 并与 NAT 网关绑定。 2)使用 EIP。

更多 外网访问 细节

创建 ECI 时需要关注 VPC 对应可用区下的交换机网段信息,避免 IP 不够用的情况发生。

标签(Tags)

Tags 的实质是附着在容器组上的一系列 Key/Value 键值对,标签需要在创建容器组时赋予,每一个容器组可以拥有最多10个标签,其中 key 值必须唯一。Tags概念与 Kubernetes 中的 Labels 概念类似。

镜像(Image)

Docker 镜像是容器应用打包的标准格式,在部署容器化应用时可以指定镜像,镜像可以来自于 Docker Hub,阿里云镜像服务,或者您的私有 Registry。镜像 ID 可以由镜像所在仓库 URI 和镜像 Tag(缺省为 latest)唯一确认。

数据卷(Volume)

您可以将外部数据卷挂载到指定的容器组,数据卷的生命周期和作用范围是一个容器组。每个容器组中声明的数据卷由容器组中的所有容器共享。

Kubernetes

更多 Kubernetes 概念,可以参考 Kubernetes 官方文档 以及容器服务 Kubernetes 版与原生 Kubernetes 的名词对照表