本トピックでは、Elastic Compute Service (ECS) の Arm インスタンスタイプを指定して、Arm アーキテクチャ用の ECI Pod を作成する方法について説明します。この Pod は、Arm アーキテクチャベースの仮想ノード上で実行されます。
前提条件
クラスターに Arm ベースの仮想ノードが作成済みである必要があります。詳細については、「Armベースの仮想ノードの追加」をご参照ください。
インスタンスタイプ
ECS インスタンスタイプの詳細については、次のトピックをご参照ください:
設定
Arm インスタンスタイプを使用して Pod を作成するには、Pod の metadata に k8s.aliyun.com/eci-use-specs Annotation を追加してインスタンスタイプを指定し、nodeSelector を kubernetes.io/arch: arm64 に設定して、Pod が Arm アーキテクチャのノードにスケジュールされるようにする必要があります。
次の手順で Pod の設定方法を説明します。
-
クラスター内に Arm ベースの仮想ノードが存在することを確認します。
kubectl get node出力に
linux-arm64サフィックスで終わるノード名が含まれている場合、そのノードは Arm ベースの仮想ノードです。:~$ kubectl get node NAME STATUS ROLES AGE VERSION virtual-kubelet-cn-beijing-h Ready agent 169m v1.24.6-aliyun.1 virtual-kubelet-cn-beijing-i Ready agent 169m v1.24.6-aliyun.1 virtual-kubelet-cn-beijing-i-linux-arm64 Ready agent 75s v1.24.6-aliyun.1 virtual-kubelet-cn-beijing-k Ready agent 169m v1.24.6-aliyun.1説明Arm ベースの仮想ノードの作成方法については、「Armベースの仮想ノードの追加」をご参照ください。
-
Deployment を作成し、Arm インスタンスタイプを指定します。
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 # Pod を Arm アーキテクチャのノードにスケジュールします。