本文主要介绍弹性容器实例ECI Pod的配置组成,包括安全隔离、CPU/Memory资源和规格配置、镜像拉取、存储、网络、日志收集等,及ECI的使用限制。
前提条件
- 您需要创建在阿里云容器服务Kubernetes版(ACK)集群中部署虚拟节点,或者创建ASK集群。详情参见步骤一:在ACK集群中部署ack-virtual-node组件和创建ASK集群。
- 您需要开通弹性容器实例服务。登录弹性容器实例控制台开通相应的服务。
安全隔离
弹性容器实例ECI作为安全可靠的Serverless容器运行环境,每个ECI实例底层通过轻量级安全沙箱技术完全强隔离,实例间互不影响。同时实例在调度时尽可能分布在不同的物理机上,进一步保障了高可用性。
CPU/Memory资源和规格配置
ECI支持多种规格配置的方式来申请资源和计费。
- 指定CPU和Memory
- 指定容器的CPU和Memory:用户可以通过Kubernetes标准方式配置单个容器的CPU和Memory(
resources.limit
),如不指定则默认单个容器的资源是2 vCPU和4 GiB内存。ECI的资源则是Pod内所有容器所需资源的总和。重要 Kubernetes会自动规整不支持的规格,例如所有容器相加的资源为2 vCPU和3 GiB内存,那么将会自动规整为2 vCPU和4 GiB内存。超过4 GiB内存将不会自动规整。 - 指定Pod的CPU和Memory:用户可以通过Annotation的方式配置整个Pod的CPU和Memory,这种情况将不再把所有容器资源相加,而以指定的资源创建和计费。此时可以不用指定内部容器的
request
和limit
,各容器可以最大程度的使用Pod内计算资源。
目前ECI Pod支持的CPU和Memory规格有:vCPU Memory .25 vCPU 0.5 GB, 1 GB .5 vCPU 1 GB, 2 GB 1 vCPU 2 GB, 4 GB, 8 GB 2 vCPU 2 GB, 4 GB, 8 GB, 16 GB 4 vCPU 4 GB, 8 GB, 16 GB, 32 GB 8 vCPU 8 GB, 16 GB, 32 GB, 64 GB 12 vCPU 12 GB, 24 GB, 48 GB, 96 GB 16 vCPU 16 GB, 32 GB, 64 GB, 128 GB 24 vCPU 48 GB, 96 GB, 192 GB 32 vCPU 64 GB, 128 GB, 256 GB 52 vCPU 96 GB, 192 GB, 384 GB 64 vCPU 128 GB, 256 GB, 512 GB CPU和Memory配置其计费时长从挂载外部存储/下载容器镜像开始至ECI实例停止运行(进入Succeeded/Failed状态)结束。
计费公式:ECI Pod实例费用=(ECI实例CPU核数xCPU单价+ECI实例内存大小x内存单价)xECI实例运行时长,实例按秒计费。当前计费单价如下:
计费项 价格 小时价 CPU(vCPU * 秒) 0.0000077美元 0.02772美元/小时 内存(GB * 秒) 0.00000096美元 0.003456美元/小时 - 指定容器的CPU和Memory:用户可以通过Kubernetes标准方式配置单个容器的CPU和Memory(
- 指定Pod的ECS规格
您可以根据需要,指定ECI实例底层使用的ECS规格族,获得各规格族的指定能力,例如指定使用ecs.sn1ne规格族来使用网络增强能力。更多相关信息,请参见ECS实例规格族和各地域ECS按量。
说明 指定ECS规格创建ECI实例时,计算资源的费用按ECS规格进行计算。目前支持的ECS实例规格族如下:- 通用型:g6e、g6、g5、sn2ne
- 计算型:c6e、c6a、c6、c5、sn1ne
- 内存型:r6e、r6、r5、se1ne、se1
- 密集计算型:ic5
- 高主频计算型:hfc6、hfc5
- 高主频通用型:hfg6、hfg5
- GPU计算型:gn6i、gn6v、gn5i、gn5
- 大数据网络增强型:d1ne
- 本地SSD型:i2、i2g
- 突发性能型:t6、t5
- 共享型:s6、xn4、n4、mn4、e4
计费公式:ECI实例费用=ECI实例指定的ECS规格单价 x ECI实例运行时长,实例按秒计费。
当指定Pod的ECS规格时,ECI可以选择使用预留实例券对ECI按规格创建实例进行抵扣。详情请参见预留实例券概述。
ECI使用预留实例券后的费用,跟您使用ECS包月实例的费用相近。
- 抢占式实例
您可以通过配置Annotation使用spot可抢占式实例,大幅降低计算成本。
镜像拉取
ECI Pod默认每次启动后使用内部的containerd从远端拉取容器镜像。如果镜像为公共镜像,则需要开通VPC的NAT网关,或者给ECI Pod挂载EIP。建议您将容器镜像存储在阿里云镜像仓库(ACR),通过VPC网络减小镜像拉取时间。另外对于ACR上的私有镜像,实现了免密拉取功能方便您使用。
同时支持了镜像快照功能。通过把容器镜像缓存到快照中,然后通过快照快速启动容器,避免再次从远端拉取镜像,适合大镜像的场景。
存储
网络
ECI Pod默认使用Host网络模式,占用交换机vSwitch的一个弹性网卡ENI资源。
- LoadBalancer Service挂载ECI Pod:也可以支持service同时挂载ECS节点上的Pod和ECI Pod。
- 访问ClusterIP Service:ECI Pod可以访问集群中的clusterIP地址。
- 挂载EIP:支持给ECI Pod挂载EIP,可自动创建或者绑定到已有的EIP实例。
日志收集
用户可以直接配置Pod的Env收集stdout
或者文件日志到阿里云日志服务SLS中。一般情况无需再部署一个logtail sidecar
容器。
支持Annotation列表
Annotation | 解释 | 示例 |
---|---|---|
k8s.aliyun.com/eci-use-specs | 表示允许的实例规格,可以配置多个。当前规格没有库存时依次尝试下一个规格创建。支持CPU-MEM格式(${cpu}-${mem}Gi)、ECS规格格式。 | "k8s.aliyun.com/eci-use-specs": "2-4Gi,4-8Gi,ecs.c6.xlarge" |
k8s.aliyun.com/eci-vswitch | 设置Pod的虚拟交换机。 | "k8s.aliyun.com/eci-vswitch" : "${your_vsw_id}" |
k8s.aliyun.com/eci-security-group | 设置Pod的安全组。 | "k8s.aliyun.com/eci-security-group" : "${your_security_group_id}" |
k8s.aliyun.com/eci-resource-group-id | 设置Pod所在的资源组 | "k8s.aliyun.com/eci-resource-group-id" : "${your_resource_group_id}" |
k8s.aliyun.com/eci-ram-role-name | 设置Pod的RamRole,赋予在ECI实例内部可以访问阿里云产品能力。 | "k8s.aliyun.com/eci-ram-role-name" : "${your_ram_role_name}" |
k8s.aliyun.com/eci-image-snapshot-id | 指定已有ImageCacheID,加速ECI Pod创建。 | k8s.aliyun.com/eci-image-snapshot-id: "${your_image_cache_id}" |
k8s.aliyun.com/eci-image-cache | 根据用户已有的镜像缓存,自动匹配镜像缓存。默认为false。 | k8s.aliyun.com/eci-image-cache: "true" |
k8s.aliyun.com/eci-with-eip | 创建弹性公网IP,绑定到ECI Pod。 | "k8s.aliyun.com/eci-with-eip": "true" |
k8s.aliyun.com/eip-bandwidth | 设置弹性公网IP带宽,如果不指定默认为5M。 | "k8s.aliyun.com/eci-with-eip": "true""k8s.aliyun.com/eip-bandwidth": 10 |
k8s.aliyun.com/eci-eip-instanceid | 给Pod绑定已有的弹性公网IP。 | "k8s.aliyun.com/eci-eip-instanceid": "${your_eip_Instance_Id}" |
k8s.aliyun.com/eci-spot-strategy |
SpotAsPriceGo:系统自动出价,跟随当前市场实际价格。 SpotWithPriceLimit:设置抢占实例价格上限。 |
k8s.aliyun.com/eci-spot-strategy: "SpotAsPriceGo" |
k8s.aliyun.com/eci-spot-price-limit | 只有k8s.aliyun.com/eci-spot-strategy设置为SpotWithPriceLimit时有效。设置实例每小时最高价格,支持最多3位小数。 | k8s.aliyun.com/eci-spot-price-limit: "0.250" |
k8s.aliyun.com/eci-ntp-server | 设置ntp server,支持设置多个。 | k8s.aliyun.com/eci-ntp-server: 100.100.X.X,100.100.X.X
说明 设置您的NTP服务器地址。
|
ECI限制
- 不支持在虚拟节点上运行DaemonSet Pod。
- 不支持hostPath/hostPid。
- 不支持privileged权限开放。
- 不支持NodePort类型的Service。
- 不支持Network Policy。