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を追加する
VPCコンソールにログインし、vSwitchを作成します。 IPアドレスが使い果たされた既存のvSwitchと同じリージョンにvSwitchを作成する必要があります。 vSwitchの作成方法の詳細については、「vSwitchの作成と管理」をご参照ください。
説明クラスター内のポッド数を増やすために十分なIPアドレスを提供するには、vSwitchのCIDRブロックに少なくとも8,192のIPアドレスを含めることを推奨します。 つまり、CIDRブロックのプレフィックス長は19ビット以下でなければなりません。
ACK コンソールにログインします。 左側のナビゲーションウィンドウで、[クラスター] をクリックします。
[クラスター] ページで、管理するクラスターの名前をクリックします。 左側のウィンドウで、
を選択します。[アドオン] ページで、[ネットワーク] タブをクリックします。 Terwayを見つけ、[アップグレード] をクリックします。 Terwayが最新バージョンに更新されたら、[設定] をクリックします。
[アップグレード] ボタンが表示されない場合、Terwayプラグインは最新バージョンです。
説明コンポーネントを再インストールすると、このメソッドを使用して指定された設定のみが保持されます。 システムは、他の方法を使用して指定された設定をリセットします。
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が存在するゾーンに、クラスターノードが存在するゾーンが含まれていることを確認します。
[OK] をクリックします。
方法2: kubectlを使用してvSwitchを追加する
VPCコンソールにログインし、vSwitchを作成します。 IPアドレスが使い果たされた既存のvSwitchと同じリージョンにvSwitchを作成する必要があります。 vSwitchの作成方法の詳細については、「vSwitchの作成と管理」をご参照ください。
説明クラスター内のポッド数を増やすために十分なIPアドレスを提供するには、vSwitchのCIDRブロックに少なくとも8,192のIPアドレスを含めることを推奨します。 つまり、CIDRブロックのプレフィックス長は19ビット以下でなければなりません。
次のコマンドを実行して、新しく作成した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を表します。次のコマンドを実行して、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
次のコマンドを実行して、すべてのポッドが再作成されているかどうかを確認します。
kubectl get pod -n kube-system | grep terway
ポッドを作成して、新しく追加された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アドレスを割り当てます。
解決策: 新しいノードを作成するか、他のノードにポッドを作成します。