vCPU 数とメモリサイズを指定して Elastic Container Instance ポッドを作成する場合、特定の Elastic Compute Service (ECS) インスタンスタイプが必要になる場合があります。たとえば、g6 や c6 などの第6世代 ECS インスタンスファミリのみを使用してポッドを作成したい場合があります。この場合、k8s.aliyun.com/eci-instance-generation アノテーションを追加して、必要な世代の ECS インスタンスファミリを指定できます。このトピックでは、ポッドを作成するときに特定の世代の ECS インスタンスファミリを指定または除外する方法について説明します。
機能の説明
vCPU 数とメモリサイズを指定して Elastic Container Instance ポッドを作成する場合、システムはさまざまな ECS インスタンスタイプを使用して作成をサポートし、vCPU とメモリの要件を満たし、十分なリソースを持つインスタンスタイプを自動的に選択します。この場合、k8s.aliyun.com/eci-instance-generation アノテーションを追加して、特定の世代の ECS インスタンスファミリを指定または除外できます。
特定の世代の ECS インスタンスファミリを指定した場合、システムは指定された世代の ECS インスタンスファミリからのみ ECS インスタンスタイプを選択します。指定された世代の ECS インスタンスファミリのリソースが不足している場合、システムはポッドを作成しません。
特定の世代の ECS インスタンスファミリを除外した場合、システムは Elastic Container Instance でサポートされている他の世代の ECS インスタンスファミリから ECS インスタンスタイプを選択してポッドを作成します。
次の表は、ポッドの作成時に指定または除外できる 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 インスタンスファミリに基づいて作成されたポッドは、実際に使用された ECS インスタンスタイプに基づいて課金されます。指定された vCPU 数とメモリサイズに基づいて課金されるわけではありません。
重要ポッドの作成後、
kubectl describe podコマンドを実行して、ポッドの YAML 詳細を表示できます。k8s.aliyun.com/eci-instance-specフィールドの値は、ポッドで使用されている ECS インスタンスタイプを示します。ポッドは、ECS インスタンスタイプに基づいて課金されます。ECS インスタンスファミリの世代を指定または除外すると、システムは特定のインスタンスタイプを自動的に選択できなくなります。たとえば、gn6i インスタンスファミリのインスタンスタイプなどの GPU アクセラレーテッドインスタンスタイプ、および i2g インスタンスファミリのインスタンスタイプなどのローカルディスクを搭載したインスタンスタイプは自動的に選択できません。特定の ECS インスタンスタイプを使用する場合は、ECS インスタンスタイプを指定してポッドを作成します。詳細については、ECS インスタンスタイプを指定してポッドを作成する を参照してください。
プリエンティブルな Elastic Container Instance を作成するために、特定の世代の ECS インスタンスファミリを指定または除外できます。このシナリオでは、システムは市場価格と設定した ECS インスタンスファミリの世代の順序に基づいて、最適な ECS インスタンスタイプを選択します。ECS インスタンスファミリの世代に厳密な要件がある場合は、1 つの世代のみを指定することをお勧めします。
特定の世代の ECS インスタンスファミリを指定または除外する機能は、vCPU 数とメモリサイズを指定してポッドを作成する場合にのみ有効になります。ポッドを作成するときに最初に ECS インスタンスタイプを指定した場合、この機能は有効になりません。
構成の説明
k8s.aliyun.com/eci-instance-generation の有効な値は、ECS インスタンスファミリの世代です。次の点に注意してください。
複数の世代を設定できます。有効な値:4、5、6、7。
ECS インスタンスファミリの世代の前にマイナス記号 (
-) を追加すると、その世代は除外されます。たとえば、
k8s.aliyun.com/eci-instance-generation: "-5,-4"は、第5世代と第4世代の ECS インスタンスファミリを除外し、第7世代または第6世代の ECS インスタンスファミリを使用することを指定します。システムは、指定された順序に基づいて指定された世代を選択します。
たとえば、
k8s.aliyun.com/eci-instance-generation: "6,5"アノテーションは、システムが優先的に第6世代の ECS インスタンスファミリを使用することを指定します。必要な vCPU とメモリの仕様を満たす第6世代の ECS インスタンスファミリのリソースが不足している場合は、第5世代の ECS インスタンスファミリが使用されます。第5世代の ECS インスタンスファミリのリソースも不足している場合は、ポッドは作成されません。
k8s.aliyun.com/eci-instance-generation アノテーションを使用する前に、次のいずれかの方法で vCPU 数とメモリサイズを指定する必要があります。
コンテナの limits パラメータまたは requests パラメータを指定します。limits パラメータを指定することをお勧めします。
ポッドのメタデータに
k8s.aliyun.com/eci-use-specsアノテーションを追加します。