在指定vCPU和内存创建ECI Pod的场景下,如果您对规格有一定要求,例如只想使用6代ECS规格(如g6、c6等),可添加k8s.aliyun.com/eci-instance-generation
的Annotation来指定ECS规格代数。本文介绍创建ECI Pod时,如何指定或排除ECS规格代数。
功能说明
指定vCPU和内存创建ECI Pod时,系统会使用多种ECS规格进行支撑,并自动选择满足vCPU和内存条件且有库存的规格。此时,您可以添加Annotation(k8s.aliyun.com/eci-instance-generation
)来指定或排除ECS规格代数。
如果指定了某些ECS规格代数,则系统仅会从相应代数的ECS规格中进行选择,如果指定的ECS规格代数没有库存,则不会创建ECI Pod。
如果排除了某些ECS规格代数,则系统在选择规格时会排除这些规格代数,从其他ECI支持的ECS规格代数中选择规格。
支持指定或排除的ECS规格代数,及其包含的ECS规格族如下:
架构 | ECS规格代数 | ECS规格族 |
Arm | 8 | g8y、c8y、r8y |
x86 | 8 | g8i、c8i、r8i、hfg8i、hfc8i、hfr8i |
7 | g7、c7、r7、hfg7、hfc7、hfr7、g7ne | |
6 | g6e、g6、c6e、c6、r6e、r6、hfc6、hfg6、s6 | |
5 | u1、g5、g5ne、c5、r5、ic5、hfc5、hfg5 | |
4 | sn2ne、sn1ne、se1ne、se1 |
关于ECS规格的详细信息,请参见:
注意事项
指定ECS规格代数创建的ECI Pod按照实际生成的ECS规格进行计费,不按照vCPU和内存计费。
重要ECI Pod创建成功后,您可以执行
kubectl describe pod
命令查看其YAML详情,通过k8s.aliyun.com/eci-instance-spec
字段确认ECI Pod实际使用的ECS规格,ECI会按照该ECS规格进行计费。指定或排除ECS规格代数时,系统无法自动选择到某些规格,如GPU规格(如gn6i)、本地盘规格(如i2g)等。如有需要,请明确指定ECS规格来创建ECI Pod。具体操作,请参见指定ECS规格创建Pod。
支持指定或排除规格代数创建抢占式实例,该场景下系统会综合考量配置的代数顺序和市场价格(价格优先),为您选择最优的实例规格。如果您对规格代数有严格要求,建议只配置一个代数。
指定或排除ECS规格代数的功能仅适用于指定vCPU和内存规格的场景,如果优先指定的是ECS规格,则该功能不会生效。
配置说明
k8s.aliyun.com/eci-instance-generation
的取值为ECS规格代数,相关说明如下:
支持配置多个规格代数,取值范围为ECI支持的规格代数。
重要目前8代规格仅支持Arm架构规格,创建Pod时需要通过nodeSelector调度到Arm节点,因此无法与其他x86架构的规格同时配置。创建Arm规格的ECI Pod时,无需使用规格代数功能来过滤规格(单独指定或排除8代规格没有实际意义)。更多信息,请参见调度Pod到Arm架构的虚拟节点和指定Arm规格创建Pod。
在规格代数前加上
-
表示排除该规格代数。例如:
k8s.aliyun.com/eci-instance-generation: "-5,-4"
表示排除5代和4代ECS规格,使用7代或6代ECS规格。对于指定的规格代数,系统会按照配置的顺序进行选择。
例如:
k8s.aliyun.com/eci-instance-generation: "6,5"
表示优先使用6代ECS规格,当6代ECS规格中,满足vCPU和内存条件的规格库存不足时,使用5代ECS规格。如果5代ECS规格库存仍不足,则创建失败。
使用k8s.aliyun.com/eci-instance-generation
时,必须先指定vCPU和内存规格,您可以通过以下两种方式指定:
通过定义容器的limits或requests来指定,建议使用limits。
在Pod metadata中添加
k8s.aliyun.com/eci-use-specs
的Annotation来指定。