多数のElastic Container Instanceを作成すると、指定されたリージョンおよびゾーン内の一部のリソースが不足する可能性があります。 Elastic Container Instanceを作成するのに十分なリソースを確保するために、ポッドの複数のゾーンに複数のインスタンスタイプを指定することを推奨します。
背景情報
Elastic Container Instanceを作成するために、ポッドの設定ファイルのe k8s.aliyun.com/eci-use-specsアノテーションに複数のECS (Elastic Compute Service) インスタンスタイプを指定できます。 指定されたECSインスタンスタイプのリソースが不足してインスタンスを作成できない場合、システムはアノテーションで指定された次のインスタンスタイプを使用してElastic Container Instanceを作成しようとします。 システムがElastic Container Instanceを作成しようとすると、ポッドはPending状態のままになります。 複数のECSインスタンスタイプを指定して、elastic containerインスタンスを作成するのに十分なリソースを確保することを推奨します。
指定されたECSインスタンスタイプはポッドレベルで有効になり、単一のポッドの作成方法にのみ影響します。
複数のゾーンで複数のインスタンスタイプを指定して、Elastic Container Instanceの作成の成功率をさらに向上させることができます。 詳細については、「複数のゾーンを指定してエラスティックコンテナインスタンスを作成する」をご参照ください。
Kubernetesモード
ポッドの設定ファイルのメタデータにアノテーションを追加して、複数のECSインスタンスタイプを指定できます。 複数のECSインスタンスタイプを優先して使用する順序で指定します。 サンプルコード:
apiVersion: apps/v1 #1.8.0以前のバージョンではapps/v1beta1を使用
kind: 配置
メタデータ:
name: nginx-deployment-basic
labels:
アプリ: nginx
spec:
replicas: 2
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
annotations:
k8s.aliyun.com/eci-use-specs: ecs.c5.large,ecs.c6.large,ecs.sn1ne.large,ecs.g5.large# ECSインスタンスタイプを指定します。
spec:
# nodeSelector:
# env: テストチーム
containers:
- name: nginx
image: nginx:1.7.9 # replace it with your exactly <image_name:tags>
ports:
- containerPort: 80
nodeName: virtual-kubelet
# Container Service for Kubernetes (ACK) クラスターのElastic Container Instanceにポッドをスケジュールする仮想ノード名を指定します。
APIモード
CreateContainerGroup操作を呼び出してエラスティックコンテナインスタンスを作成する場合、InstanceTypeパラメーターを使用して1つ以上のECSインスタンスタイプを指定できます。 次の表にパラメーターを示します。 詳細については、「CreateContainerGroup」をご参照ください。
パラメーター | データ型 | 必須/任意 | 例 | 説明 |
---|---|---|---|---|
InstanceType | String | 任意 | ecs.c5.xlarge,ecs.g5.xlarge | ECSインスタンスタイプ。 一度に最大5つのECSインスタンスタイプを指定できます。 複数のインスタンスタイプはコンマ (,) で区切ります。 例: ecs.c5.xlarge,ecs.g5.xlarge |
複数のゾーンにわたって複数のインスタンスタイプを指定して、エラスティックコンテナインスタンスを作成することを推奨します。 VSwitchIdパラメーターを使用して複数のゾーンを指定し、InstanceTypeパラメーターを使用して複数のインスタンスタイプを指定できます。