特定のケースでは、トラフィックのバーストや処理ジョブを処理するために、多数のエラスティックコンテナインスタンスを作成する必要があります。 Resources of the specified instance type may be insufficient within the specified zone or the specified vSwitch may have exhausted all of its IP addresses. このような場合、エラスティックコンテナインスタンスは作成できません。 エラスティックコンテナインスタンスを作成するのに十分なリソースを確保するために、複数のゾーンを指定できます。
前提条件
vSwitchは、エラスティックコンテナインスタンスを作成する仮想プライベートクラウド (VPC) の異なるゾーンに作成されます。
vSwitchの作成方法については、「vSwitchの操作」の「vSwitchの作成」セクションをご参照ください。
Elastic Container Instanceが使用可能なリージョンとゾーンについては、「リージョンとゾーン」をご参照ください。
背景情報
When you create an elastic container instance (pod), you can specify multiple zones by specifying multiple vSwitches. 次に、システムは、エラスティックコンテナインスタンスを作成する要求を、指定されたすべてのゾーンにランダムに分散します。 要求されたリソースが1つのゾーン内で不十分な場合、システムは別のゾーンにインスタンスを作成しようとします。
複数のゾーン (vSwitch) を指定する場合は、次の項目に注意してください。
指定されたvSwitchは同じVPCに属している必要があります。
最大10個のvSwitchを指定できます。
複数のゾーンにまたがる複数のインスタンスタイプを指定して、エラスティックコンテナインスタンスの作成の成功率をさらに向上させることができます。 複数のインスタンスタイプを指定してエラスティックコンテナインスタンスを作成する方法については、「エラスティックコンテナインスタンスを作成するために複数のインスタンスタイプを指定する」を参照してください。→ Specify multiple instance types to create an elastic container instance.
Kubernetesモード
クラスターまたはエラスティックコンテナインスタンスに複数のゾーンを指定できます。
クラスターに複数のゾーンを指定した場合、ゾーン設定はクラスター内のすべてのエラスティックコンテナインスタンスで有効になります。
弾性コンテナインスタンスに複数のゾーンを指定した場合、ゾーン設定は弾性コンテナインスタンスでのみ有効になります。
異なるクラスタータイプは、複数のゾーンを指定するための異なる方法をサポートします。
クラスター作成時に複数のゾーンを指定する
クラスターを作成する前に、クラスターを作成するVPC内の複数のゾーンに複数のvSwitchを作成することを推奨します。 クラスターを作成するときに、VPCを選択し、複数のvSwitchを選択して複数のゾーンを指定できます。 次の図は、ACKコンソールでサーバーレスKubernetes (ASK) クラスターを作成する方法を示しています。
既存のクラスターに複数のゾーンを指定
仮想Kubeletのバージョンに基づいてeci-profileを変更するか、環境変数の値を変更することで、複数のゾーンを指定できます。
eci-profileの変更 (Virtual Kubeletのバージョンはv2.0.0.90-15deb126e-aliyun以降)
既存のクラスターのeci-profile ConfigMapを変更し、vSwitch IDをeci-profileの
data.vSwitchlds
フィールドに追加して、複数のゾーンを指定できます。 次のステップを実行します。eci-profileを編集します。
kubectl edit cm -n kube-system eci-profile
data.vswitchを変更します。
Append vSwitch IDs. Separate multiple vSwitch IDs with commas (,).
データ: enableClusterIp: "true" enableHybridMode: "false" enablePrivateZone: "false" resourceGroupId: "" securityGroupId: sg-2ze0b9o8pjjzts4h **** セレクター: "" vSwitchIds: vsw-2zeet2ksvw7f14ryz **** 、vsw-2ze94pjtfuj9vaymf **** vpcId: vpc-2zeghwzptn5zii0w7 ****
変更を保存して終了します。
環境変数の値を変更する (Virtual Kubeletのバージョンがv2.0.0.90-15deb126e-aliyunより前)
説明新しい機能を使用するには、Virtual Kubeletを最新バージョンにアップグレードすることを推奨します。
複数のゾーンを指定するには、Virtual Kubeletのデプロイ方法に基づいて、DeploymentまたはStatefulSetの環境変数
ECI_VSWITCH
の値を変更します。 次の例では、Virtual Kubeletがデプロイとしてデプロイされているクラスターが使用されています。[デプロイ] を編集します。
kubectl -n kube-system edit deployment/virtual-node-controller
ECI_VSWITCHを変更します。 変更を保存して終了します。
ECI_VSWITCH
環境変数にvSwitch IDを追加します。 複数のvSwitch IDをコンマ (,) で区切ります。名: ECI_VSWITCH 値: vsw-bp1xpiowfm5vo8o3c ****,vsw-bp1rkyjgr1xwoho6k ****
変更を保存して終了します。
エラスティックコンテナインスタンスに複数のゾーンを指定
ポッドの構成ファイルのメタデータにアノテーションを追加して、複数のゾーンを指定できます。 次の注釈を追加します。
k8s.aliyun.com/eci-vswitch: the IDs of vSwitches used to specify multiple zones.
k8s.aliyun.com/eci-schedule-strategy: ゾーン間スケジューリングポリシー。 有効な値: VSwitchOrderedおよびVSwitchRandom。 VSwitchOrderedは、リソースが、スイッチが指定された順序で指定されたゾーン内にエラスティックコンテナインスタンスを作成するようにスケジュールされることを示します。 VSwitchRandomは、リソースが指定されたゾーン内にランダムにエラスティックコンテナインスタンスを作成するようにスケジュールされることを示します。
サンプルコード:
apiVersion: v1 kind: Pod metadata: annotations: k8s.aliyun.com/eci-vswitch: "vsw-bp1xpiowfm5vo8o3c ****,vsw-bp1rkyjgr1xwoho6k ****"# 複数のvSwitch IDを指定します。 k8s.aliyun.com/eci-schedule-strategy: "VSwitchOrdered"# ゾーン間スケジューリングポリシーを指定します。 名前: nginx-test spec: containers: - name: nginx 画像: nginx: 最新
APIモード
CreateContainerGroup操作を呼び出してエラスティックコンテナインスタンスを作成する場合、VSwitchIdパラメーターを使用して複数のゾーンを指定できます。 このパラメーターを次の表に示します。 詳細については、「CreateContainerGroup」をご参照ください。
パラメーター | データ型 | 必須/任意 | 例 | 説明 |
---|---|---|---|---|
VSwitchId | String | 必須 | vsw-bp1xpiowfm5vo8o3c ****,vsw-bp1rkyjgr1xwoho6k **** | vSwitchのID。 一度に最大10個のvSwitch IDを指定できます。 複数のvSwitch IDをコンマ (,) で区切ります。 例: vsw-*** 、vsw-*** 。 |
複数のゾーンにわたって複数のインスタンスタイプを指定して、エラスティックコンテナインスタンスを作成することを推奨します。 VSwitchIdパラメーターを使用して複数のゾーンを指定し、InstanceTypeパラメーターを使用して複数のインスタンスタイプを指定できます。
コンソールモード
elastic container instanceコンソールのelastic container instance購入ページを使用してElastic Container Instanceを作成する場合、複数のvSwitchを選択して複数のゾーンを指定できます。