本文介绍如何指定ECS Arm规格创建一个Arm架构的ECI Pod,该Pod将运行在Arm架构的虚拟节点上。
前提条件
已在集群中创建了Arm架构的虚拟节点。关于如何创建Arm架构的虚拟节点,请参见添加Arm架构的虚拟节点。
规格说明
关于ECS规格的详细信息,请参见:
配置说明
除了在Pod metadata中添加k8s.aliyun.com/eci-use-specs
的Annotation来指定Arm规格外,创建Arm规格的Pod必须要配置nodeSelector为kubernetes.io/arch: arm64以适配K8s调度。
配置示例如下:
确认集群中已有Arm架构的虚拟节点。
kubectl get node
如果返回的节点名称中带有
linux-arm64
的后缀,则表示该节点为Arm架构的虚拟节点。说明关于如何在集群中创建Arm架构的虚拟节点,请参见添加Arm架构的虚拟节点。
指定Arm规格创建Pod。
kubectl create -f arm-test.yaml
arm-test.yaml的内容示例如下:
apiVersion: apps/v1 kind: Deployment metadata: name: test labels: app: test spec: replicas: 1 selector: matchLabels: app: nginx template: metadata: name: nginx-test labels: app: nginx alibabacloud.com/eci: "true" annotations: k8s.aliyun.com/eci-use-specs: "ecs.c8y.large,ecs.g8y.large" # 指定支持的ECS Arm规格,单次最多5个。 spec: containers: - name: nginx image: arm64v8/centos:7.9.2009 # 使用基于Arm架构的镜像。 command: ["sleep"] args: ["999999"] nodeSelector: kubernetes.io/arch: arm64 # 调度到Arm节点。