このトピックでは、ArmベースのElastic Compute Service(ECS)インスタンスタイプを指定してElastic Container Instance(ECI)ポッドを作成する方法について説明します。ポッドはArmベースの仮想ノードで実行されます。
前提条件
Armベースの仮想ノードはクラスタ内に作成されます。クラスタ内にArmベースの仮想ノードを作成する方法については、Armベースの仮想ノードを追加するを参照してください。
サポートされているインスタンスファミリ
ECSインスタンスファミリの詳細については、以下のトピックを参照してください。
構成
ポッドの構成ファイルのメタデータにk8s.aliyun.com/eci-use-specs
アノテーションを追加してArmベースのECSインスタンスタイプを指定するだけでなく、nodeSelectorをkubernetes.io/arch: arm64に設定する必要があります。これにより、KubernetesはポッドをArmベースの仮想ノードにスケジュールできます。
例:
クラスタ内にArmベースの仮想ノードが存在することを確認します。
kubectl get node
返されたノード名に
linux-arm64
サフィックスが含まれている場合、そのノードはArmベースの仮想ノードです。説明クラスタ内にArmベースの仮想ノードを作成する方法については、ARMベースの仮想ノードの追加を参照してください。
ArmベースのECSインスタンスタイプを指定してポッドを作成します。
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" # ArmベースのECSインスタンスタイプを指定します。一度に最大5つのインスタンスタイプを指定できます。 spec: containers: - name: nginx image: arm64v8/centos:7.9.2009 # Armベースのイメージを使用します。 command: ["sleep"] args: ["999999"] nodeSelector: kubernetes.io/arch: arm64 # ポッドをArmベースの仮想ノードにスケジュールします。