指定Arm規(guī)格創(chuàng)建Pod
本文介紹如何指定ECS Arm規(guī)格創(chuàng)建一個(gè)Arm架構(gòu)的ECI Pod,該P(yáng)od將運(yùn)行在Arm架構(gòu)的虛擬節(jié)點(diǎn)上。
前提條件
已在集群中創(chuàng)建了Arm架構(gòu)的虛擬節(jié)點(diǎn)。關(guān)于如何創(chuàng)建Arm架構(gòu)的虛擬節(jié)點(diǎn),請(qǐng)參見添加Arm架構(gòu)的虛擬節(jié)點(diǎn)。
規(guī)格說(shuō)明
Arm規(guī)格基于Arm架構(gòu),每一個(gè)vCPU都對(duì)應(yīng)一個(gè)處理器的物理核心,具有性能穩(wěn)定且資源獨(dú)享的特點(diǎn),適用于容器、微服務(wù)、網(wǎng)站和應(yīng)用服務(wù)器、高性能計(jì)算、基于CPU的機(jī)器學(xué)習(xí)等場(chǎng)景。
規(guī)格類型 | Arm規(guī)格族 |
通用型 | g8y |
計(jì)算型 | c8y |
內(nèi)存型 | r8y |
關(guān)于ECS規(guī)格的詳細(xì)信息,請(qǐng)參見:
配置說(shuō)明
除了在Pod metadata中添加k8s.aliyun.com/eci-use-specs
的Annotation來(lái)指定Arm規(guī)格外,創(chuàng)建Arm規(guī)格的Pod必須要配置nodeSelector為kubernetes.io/arch: arm64以適配K8s調(diào)度。
配置示例如下:
確認(rèn)集群中已有Arm架構(gòu)的虛擬節(jié)點(diǎn)。
kubectl get node
如果返回的節(jié)點(diǎn)名稱中帶有
linux-arm64
的后綴,則表示該節(jié)點(diǎn)為Arm架構(gòu)的虛擬節(jié)點(diǎn)。說(shuō)明關(guān)于如何在集群中創(chuàng)建Arm架構(gòu)的虛擬節(jié)點(diǎn),請(qǐng)參見添加Arm架構(gòu)的虛擬節(jié)點(diǎn)。
指定Arm規(guī)格創(chuàng)建Pod。
kubectl create -f arm-test.yaml
arm-test.yaml的內(nèi)容示例如下:
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規(guī)格,單次最多5個(gè)。 spec: containers: - name: nginx image: arm64v8/centos:7.9.2009 # 使用基于Arm架構(gòu)的鏡像。 command: ["sleep"] args: ["999999"] nodeSelector: kubernetes.io/arch: arm64 # 調(diào)度到Arm節(jié)點(diǎn)。