在创建ECI Pod时,您可以指定单个容器或ECI Pod的CPU与内存规格。本文分别介绍如何指定ECI实例内容器规格和ECI Pod规格。
索引
指定ECI实例内容器规格
通过Kubernetes标准方式配置单个容器的CPU和内存,ECI的资源则是Pod内所有容器所需资源的总和。
每个ECI实例支持最多20个容器,实例内每个容器的资源支持自定义配置,但汇总到ECI实例级别需要满足CPU和内存约束。
对于未满足的情况,ECI会执行自动规整操作,计费按照规整后CPU和内存值进行计费。
对于大于4 vCPU的情况,为了减少因操作失误造成规整,浪费计费资源,您需要严格声明规格资源,否则接口会返回规格非法错误。
ECI Pod支持的CPU和内存规格,如下表所示。
vCPU | 内存(GiB) | emptyDir空间大小(GiB) | 网络带宽能力(出+入)(Gbit/s)(理论上限值) | 网络收发包能力(出+入)(万PPS)(理论上限值) | 网卡多队列 |
0.25 | 0.5、1 | 30 | 0.08 | 4 | 1 |
0.5 | 1、2 | 30 | 0.08 | 5 | 1 |
1 | 2、4、8 | 30 | 0.1 | 5 | 1 |
2 | 1、2、4、8、16 | 30 | 1 | 30 | 2 |
4 | 2、4、8、16、32 | 30 | 1.5 | 50 | 2 |
8 | 4、8、16、32、64 | 30 | 2 | 80 | 4 |
12 | 12、24、48、96 | 30 | 2.5 | 90 | 4 |
16 | 16、32、64 、128 | 30 | 3 | 100 | 4 |
24 | 24、48、96、192 | 30 | 4.5 | 150 | 6 |
32 | 32、64、128、256 | 30 | 6 | 200 | 8 |
52 | 96、192、384 | 30 | 12.5 | 300 | 32 |
56 | 224 | 30 | 10 | 450 | 14 |
64 | 128、256、512 | 30 | 20 | 400 | 16 |
使用示例
基于Kubernetes原生方式,直接定义对应container
的request
即可。
当Limit与Request不一致时,系统将基于Limit进行资源规格申请。
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx
labels:
app: nginx
spec:
replicas: 2
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:1.7.9
ports:
- containerPort: 80
resources:
requests:
cpu: "500m"
memory: "1024Mi"
- name: busybox
image: busybox:latest
ports:
- containerPort: 80
resources:
requests:
cpu: "500m"
memory: "1024Mi"
指定ECI Pod规格
在指定ECI Pod级别的CPU和内存模式下,对于指定的CPU和内存规格,ECI会尝试使用多种ECS规格进行支撑,以提供比ECS单规格更好的库存和弹性能力。具有以下优势:
ECI实例内容器可以不用限制资源上限。在定义实例内容器资源时,可以不用指定
request
和limit
,各容器可以最大程度的共享申请的资源。在基因计算和Istio场景下,业务框架会自动给Pod添加Sidecar容器。通过显式指定ECI实例规格,ECI可以无缝地对接这类业务框架。
使用示例
当Limit与Request不一致时,系统将基于Limit进行资源规格申请。
通过在Pod定义中设置annotations: k8s.aliyun.com/eci-use-specs,可以配置多个规格,以逗号分隔。
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-deployment-basic
labels:
app: nginx
spec:
replicas: 2
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
annotations:
k8s.aliyun.com/eci-use-specs : "2-4Gi"
spec:
containers:
- name: nginx
image: nginx:1.7.9
ports:
- containerPort: 80
- name: busybox
image: busybox:latest
ports:
- containerPort: 80
resources:
limits:
cpu: "500m"
memory: "1024Mi"