大部分场景下,如果没有特殊的规格需求(如GPU、本地盘等),推荐您指定vCPU和内存来创建ECI实例,系统会尝试使用多种ECS规格进行支撑,以提供比ECS单规格更好的弹性和资源供应能力。
指定ECI实例内容器的vCPU与内存
您可以指定实例或者容器的vCPU和内存来创建ECI实例。如果指定的vCPU和内存不符合要求,系统将自动按照ECI支持的规格进行规整。规整时将向最接近的ECI规格进行规整,同时需满足指定的vCPU和内存≤ECI规格的vCPU和内存。例如:在华东1(杭州)地域创建ECI实例时,声明了7 vCPU,13 GiB内存,则实际创建的ECI实例为8 vCPU,14 GiB内存。
ECI支持的CPU和内存规格,如下表所示。
如果未指定vCPU和内存规格,系统默认采用2 vCPU和4 GiB内存的规格创建ECI实例。
目前仅支持一块弹性网卡,暂不支持多网卡能力。
各规格支持的默认临时存储空间大小均为30 GiB。
使用示例
基于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的vCPU与内存
在指定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"