vCPU数とメモリサイズを指定してElastic Container Instance Podを作成する場合、特定のElastic Compute Service (ECS)インスタンスタイプが必要になる場合があります。たとえば、ecs.g6インスタンスファミリのみを使用してPodを作成する場合などです。このような場合は、k8s.aliyun.com/eci-instance-family
アノテーションを追加して、目的のECSインスタンスファミリを指定できます。このトピックでは、Elastic Container Instance Podを作成するときに特定のECSインスタンスファミリを指定または除外する方法について説明します。
機能の説明
vCPU数とメモリサイズを指定してPodを作成する場合、システムは複数のECSインスタンスタイプを使用して作成をサポートします。システムは、vCPUとメモリの仕様要件を満たし、十分なリソースを持つECSインスタンスタイプを自動的に選択します。この場合、k8s.aliyun.com/eci-instance-family
アノテーションを追加して、特定のECSインスタンスファミリを指定または除外できます。
特定のECSインスタンスファミリを指定した場合、システムは指定されたECSインスタンスファミリからのみECSインスタンスタイプを選択します。指定されたECSインスタンスファミリのリソースが不足している場合、システムはPodを作成しません。
特定のECSインスタンスファミリを除外した場合、システムはElastic Container Instanceでサポートされている他のECSインスタンスファミリからインスタンスタイプを選択してPodを作成します。
k8s.aliyun.com/eci-instance-generation
アノテーションと共にk8s.aliyun.com/eci-instance-familyアノテーションを使用することで、ECSインスタンスタイプをより細かく制御できます。k8s.aliyun.com/eci-instance-generationは、特定の世代のECSインスタンスファミリを指定または除外します。
次の表は、指定または除外できるECSインスタンスファミリを示しています。
ECSインスタンスファミリの世代 | ECSインスタンスファミリ |
8 | g8i、c8i、r8i、hfg8i、hfc8i、hfr8i |
7 | g7、c7、r7、hfg7、hfc7、hfr7、g7ne |
6 | g6e、g6、c6e、c6、r6e、r6、hfc6、hfg6 |
5 | u1、g5、g5ne、c5、r5、ic5、hfc5、hfg5 |
4 | sn2ne、sn1ne、se1ne、se1 |
ECSインスタンスファミリの詳細については、以下のトピックを参照してください。
注意事項
指定または除外されたECSインスタンスファミリに基づいて作成された場合、Podの課金は、指定されたvCPUとメモリの仕様ではなく、実際に使用されたECSインスタンスタイプに基づいて行われます。
重要Podの作成後、
kubectl describe pod
コマンドを実行して、PodのYAMLの詳細を表示できます。k8s.aliyun.com/eci-instance-spec
フィールドの値は、Podで使用されているECSインスタンスタイプを示します。Podは、ECSインスタンスタイプに基づいて課金されます。特定のECSインスタンスファミリを指定または除外する場合、システムは特定のインスタンスタイプを自動的に選択できません。たとえば、gn6iインスタンスファミリのインスタンスタイプなどのGPUアクセラレーションインスタンスタイプ、およびi2gインスタンスファミリのインスタンスタイプなどのローカルディスクを搭載したインスタンスタイプは自動的に選択できません。特定のECSインスタンスタイプを使用する場合は、ECSインスタンスタイプを指定してPodを作成します。詳細については、ECSインスタンスタイプを指定してPodを作成するを参照してください。
特定のECSインスタンスファミリを指定または除外する機能は、vCPU数とメモリサイズを指定してPodを作成する場合にのみ有効になります。ECSインスタンスタイプを指定してPodを作成する場合、この機能は有効になりません。
プリエンティブルなElastic Container Instanceを作成する場合、システムは、指定または除外されたインスタンスファミリに基づいて、最も適切なECSインスタンスタイプを選択します。選択は、インスタンスファミリのソート順とインスタンスタイプの市場価格によって決定され、市場価格はソート順よりも優先されます。ECSインスタンスファミリに厳密な要件がある場合は、1つのインスタンスファミリのみを設定することをお勧めします。
構成の説明
k8s.aliyun.com/eci-instance-family
の有効な値は、ECSインスタンスファミリです。次の点に注意してください。
複数のインスタンスファミリを設定できます。有効な値:Elastic Container InstanceでサポートされているECSインスタンスファミリ。
インスタンスファミリの前にマイナス記号(
-
)を追加すると、Podの作成時にそのインスタンスファミリが除外されます。たとえば、
k8s.aliyun.com/eci-instance-family: "-ecs.c6, -ecs.c5"
は、ecs.c6およびecs.c5インスタンスファミリが除外されることを指定します。システムは、指定されたインスタンスファミリをソート順に基づいて選択します。
たとえば、
k8s.aliyun.com/eci-instance-family: "ecs.c6, ecs.c5"
アノテーションは、システムが優先的にecs.c6インスタンスファミリを使用することを指定します。vCPUとメモリの仕様要件を満たすecs.c6インスタンスファミリのリソースが不足している場合は、ecs.c5インスタンスファミリが使用されます。ecs.c5インスタンスファミリのリソースも不足している場合は、Podは作成されません。
k8s.aliyun.com/eci-instance-family
アノテーションを使用する前に、次のいずれかの方法でvCPUとメモリの仕様を指定する必要があります。
コンテナのlimitsまたはrequestsパラメータを設定します。limitsパラメータを設定することをお勧めします。
k8s.aliyun.com/eci-use-specs
アノテーションをPodのメタデータに追加します。