指定Arm规格创建Pod

本文介绍如何指定ECS Arm规格创建一个Arm架构的ECI Pod,该Pod将运行在Arm架构的虚拟节点上。

前提条件

已在集群中创建了Arm架构的虚拟节点。关于如何创建Arm架构的虚拟节点,请参见添加Arm架构的虚拟节点

规格说明

Arm规格基于Arm架构,每一个vCPU都对应一个处理器的物理核心,具有性能稳定且资源独享的特点,适用于容器、微服务、网站和应用服务器、高性能计算、基于CPU的机器学习等场景。

规格类型

Arm规格族

通用型

g8y

计算型

c8y

内存型

r8y

关于ECS规格的详细信息,请参见:

配置说明

除了在Pod metadata中添加k8s.aliyun.com/eci-use-specs的Annotation来指定Arm规格外,创建Arm规格的Pod必须要配置nodeSelector为kubernetes.io/arch: arm64以适配K8s调度。

配置示例如下:

  1. 确认集群中已有Arm架构的虚拟节点。

    kubectl get node

    如果返回的节点名称中带有linux-arm64的后缀,则表示该节点为Arm架构的虚拟节点。

    ARM节点

    说明

    关于如何在集群中创建Arm架构的虚拟节点,请参见添加Arm架构的虚拟节点

  2. 指定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节点。