すべてのプロダクト
Search
ドキュメントセンター

Container Service for Kubernetes:Terwayプラグインを使用するクラスター内のポッドvSwitchの数を増やす

最終更新日:Oct 31, 2024

Terwayプラグインを使用するContainer Service for Kubernetes (ACK) クラスターで、vSwitchのIPアドレスが不足している場合、またはポッドCIDRブロックを拡張する場合は、クラスター内のvSwitchの数を増やす必要があります。 このトピックでは、新しいvSwitchを作成してACKクラスターにさらに多くのIPアドレスを提供する方法について説明します。

制限事項

  • ノードが存在するゾーンが、追加するvSwitchのゾーンに含まれていることを確認します。 ノードが存在するゾーンが、追加するvSwitchのゾーンに含まれていない場合、ノードのプライマリelastic network interface (ENI) が属するvSwitchが使用されます。

  • 既存のENIが属するvSwitchの設定は変更できません。 ポッドvSwitchの数を増やした後、新しいノードを追加し、新しく追加したノードで使用されるvSwitchの設定を変更できます。

IPアドレス不足の症状

Terwayプラグインを使用するクラスターでは、次の症状は、クラスター内のvSwitchによって提供されたIPアドレスが使い果たされていることを示しています。

  • 新しいポッドの作成に失敗しました。 作成するポッドは、ContainerCreating状態のままです。 この場合、次のコマンドを実行して、ポッドがデプロイされているノードのTerwayのログを照会します。

    kubectl logs --tail=100 -f terway-eniip-zwjwx -n kube-system -c terway

    次のようなエラーメッセージが返された場合は、vSwitchのIPアドレスが使い果たされたことを示します。 使用可能なIPアドレスがないため、ポッドは作成できず、ContainerCreating状態のままです。

    time="2020-03-17T07:03:40Z" level=warning msg="Assign private ip address failed: Aliyun APIエラー: RequestId: 2095E971-E473-4BA0-853F-0C41CF52651Dステータスコード: 403コード: InvalidVSwitchId.IpNotEnoughメッセージ: 指定されたVSwitch \" vsw-AAA\"has enough IpAddress., retriing"
  • Virtual Private Cloud (VPC) コンソールにログインします。 左側のナビゲーションウィンドウで、[vSwitch] をクリックします。 vSwitchページで、クラスターのvSwitchを見つけ、[使用可能なIPアドレス] 列に0が表示されていることを確認します。

vSwitchの追加

ACKコンソールでいくつかの手順を実行して、ポッドvSwitchを追加できます。 クラスターにポッドvSwitchを追加する前に、Terwayを最新バージョンに更新することを推奨します。

クラスターがTerway 1.4.4以降を使用している場合、ACKコンソールまたはkubectlを使用してポッドvSwitchを追加できます。 クラスターが1.4.4より前のバージョンのTerwayを使用している場合、kubectlを使用してのみポッドvSwitchを追加できます。

方法1: ACKコンソールを使用してvSwitchを追加する

  1. VPCコンソールにログインし、vSwitchを作成します。 IPアドレスが使い果たされた既存のvSwitchと同じリージョンにvSwitchを作成する必要があります。 vSwitchの作成方法の詳細については、「vSwitchの作成と管理」をご参照ください。

    説明

    クラスター内のポッド数を増やすために十分なIPアドレスを提供するには、vSwitchのCIDRブロックに少なくとも8,192のIPアドレスを含めることを推奨します。 つまり、CIDRブロックのプレフィックス長は19ビット以下でなければなりません。

  2. ACK コンソールにログインします。 左側のナビゲーションウィンドウで、[クラスター] をクリックします。

  3. [クラスター] ページで、管理するクラスターの名前をクリックします。 左側のウィンドウで、[操作] > [アドオン] を選択します。

  4. [アドオン] ページで、[ネットワーク] タブをクリックします。 Terwayを見つけ、[アップグレード] をクリックします。 Terwayが最新バージョンに更新されたら、[設定] をクリックします。

    [アップグレード] ボタンが表示されない場合、Terwayプラグインは最新バージョンです。

    説明

    コンポーネントを再インストールすると、このメソッドを使用して指定された設定のみが保持されます。 システムは、他の方法を使用して指定された設定をリセットします。

    Configuration

  5. terway-eniipパラメーターダイアログボックスで、PodVswitchIdセクションで作成したvSwitchを選択し、他のパラメーターにデフォルト値を使用します。 下表に、各パラメーターを説明します。

    パラメーター

    説明

    TerwayMemoryRequest

    Terwayコンテナのメモリ要求。

    100Mi

    TerwayMemoryLimit

    Terwayコンテナのメモリ制限。

    256Mi

    TerwayCpuLimit

    TerwayコンテナのCPU制限。

    100m

    TerwayCpuRequest

    TerwayコンテナのCPUリクエスト。

    100m

    PolicyMemoryRequest

    ポリシーコンテナのメモリ要求。

    250m

    PolicyCpuRequest

    ポリシーコンテナのCPU要求。

    100m

    PolicyMemoryLimit

    Policyコンテナのメモリ制限。

    無制限

    PolicyCpuLimit

    ポリシーコンテナのCPU制限。

    1

    NetworkPolicy

    NetworkPoliciesを有効にするかどうかを指定します。

    NetworkPoliciesを有効にします。

    PodVswitchId

    Terwayによって管理されるポッドvSwitch。

    ポッドvSwitchが存在するゾーンに、クラスターノードが存在するゾーンが含まれていることを確認します。

  6. [OK] をクリックします。

方法2: kubectlを使用してvSwitchを追加する

  1. VPCコンソールにログインし、vSwitchを作成します。 IPアドレスが使い果たされた既存のvSwitchと同じリージョンにvSwitchを作成する必要があります。 vSwitchの作成方法の詳細については、「vSwitchの作成と管理」をご参照ください。

    説明

    クラスター内のポッド数を増やすために十分なIPアドレスを提供するには、vSwitchのCIDRブロックに少なくとも8,192のIPアドレスを含めることを推奨します。 つまり、CIDRブロックのプレフィックス長は19ビット以下でなければなりません。

  2. 次のコマンドを実行して、新しく作成したvSwitchをTerwayのConfigMapに追加します。

    kubectl edit cm eni-config -n kube-system

    例:

    eni_conf: |
    {
    "version": "1" 、"max_pool_size": 25、"min_pool_size": 10、"vswitches": {"cn-shanghai-f":["vsw-AAA", "vsw-BBB"]} 、"service_cidr": "172.21.0.0/20" 、"security_group": "sg-CCC"
    } 

    この例では、vswitchesパラメーターの値にvsw-BBBが追加されます。 vsw-AAAは、IPアドレスが不足している既存のvSwitchを表します。

  3. 次のコマンドを実行して、Terway用に作成されたすべてのポッドを削除します。 ACKは自動的にポッドを再作成します。

    • ENIが複数のポッド間で共有されている場合は、次のコマンドを実行します。

      kubectl delete -n kube-system pod -l app=terway-eniip
    • ENIが1つのポッド専用の場合は、次のコマンドを実行します。

      kubectl delete -n kube-system pod -l app=terway-eni
  4. 次のコマンドを実行して、すべてのポッドが再作成されているかどうかを確認します。

    kubectl get pod -n kube-system | grep terway
  5. ポッドを作成して、新しく追加されたvSwitchからIPアドレスが割り当てられているかどうかを確認します。

    説明

    vSwitchの設定を変更すると、設定は新しく作成されたENIにのみ適用されます。 既存のENIは以前の設定を使用します。 設定を有効にするには、ノードを再起動します。

前の手順で例外が発生した場合、チケットを起票します。

よくある質問

Terwayネットワークに新しいvSwitchが作成された後、クラスターがインターネットにアクセスできないのはなぜですか。

症状: Terwayネットワークで、ポッドにIPアドレスを追加するために新しいvSwitchが作成されると、クラスターはインターネットにアクセスできません。

原因: ポッドにIPアドレスを割り当てる新しいvSwitchがインターネットにアクセスできません。

解決策: NATゲートウェイを作成し、SNATルールを設定して、新しいvSwitchがインターネットにアクセスできるようにします。 詳細については、「既存のACKクラスターによるインターネットへのアクセスの有効化」をご参照ください。

新しく作成されたポッドのIPアドレスがvSwitch CIDRブロックに含まれない場合はどうすればよいですか?

症状: Terwayモードでは、新しく作成されたポッドのIPアドレスがvSwitch CIDRブロックに含まれません。

原因: ポッドの作成後、ECSインスタンスのENIはVPC CIDRブロックからポッドにIPアドレスを割り当てます。 vSwitchは、新しく作成されたENIがノードに接続されている場合にのみ設定できます。 ノードをクラスターに追加する前、またはTerwayが使用するvSwitchを変更する前に、ENIがノードにアタッチされている場合、ENIは、ENIが属するvSwitchからノードに新しく作成されたポッドにIPアドレスを割り当てます。 この問題は、次のシナリオで発生する可能性があります。

  • 別のクラスターから削除されたノードをクラスターに追加します。 ノードが取り外されたとき、ノードは排水されませんでした。 この場合、ノードは、ノードが以前に属していたクラスターによってアタッチされたENIを使用します。

  • Terwayで使用されるvSwitchを手動で追加または変更します。 しかしながら、ノードは、依然として元のENIにアタッチされ得る。 この場合、ENIは、ENIが属するvSwitchからノード上に新しく作成されたポッドにIPアドレスを割り当てます。

解決策: 新しいノードを作成するか、他のノードにポッドを作成します。