この記事では、Microsoft Azure Kubernetes Service (AKS) クラスターを作成または更新しようとしたときに発生する "InvalidLoadBalancerProfileAllocatedOutboundPorts" エラー コードを特定して解決する方法について説明します。
[前提条件]
Azure CLI バージョン 2.53.0 以降。 インストールされているバージョンを確認するには、 az --version コマンドを実行します。
症状
AKS クラスターの作成または更新操作が失敗し、次のエラー メッセージが返されます。
コード: InvalidLoadBalancerProfileAllocatedOutboundPorts
メッセージ: ロード バランサー プロファイルによって割り当てられたポート 8000 が、プロビジョニングされたノードと IP の数を指定すると、許容範囲内にありません。 ノード 数 9 の合計には 7,2000 ポートが必要ですが、1 つの送信パブリック IP を使用できるポートは 6,4000 個のみです。 詳細については、https://aka.ms/aks/slb-portsを参照してください。
原因
送信の種類が LoadBalancerクラスターでは、クラスター ノードから送信されるトラフィック (ポッドで実行されているアプリケーションからのトラフィックを含む) が AKS マネージド ロード バランサー経由で送信されます。これは、これらの送信接続を確立するためにソース ネットワーク アドレス変換 (SNAT) ポートに依存します。
既定では、各クラスターには合計 64,000 個の SNAT ポートを許可する送信フロントエンド IP アドレスが 1 つ割り当てられ、クラスター内の各ワーカー ノードにはこれらのポートの共有が割り当てられます。 たとえば、クラスターに 50 個以下のノードがある場合、各ワーカー ノードには 1,024 個のポートが割り当てられます。 クラスターで実行されているアプリケーションで多数の送信接続を確立する必要があるシナリオによっては、使用可能な SNAT ポートの既定の数が不十分で、SNAT ポートが枯渇する可能性があります。
SNAT ポート枯渇の問題を解決するには、次の方法のいずれかまたは両方を使用します。
- 送信フロントエンド IP アドレスの数を変更します。 各 IP アドレスには、追加の 64,000 個の SNAT ポートが用意されています。
- 各ワーカー ノードに割り当てられている SNAT ポートの数を変更します。
"InvalidLoadBalancerProfileAllocatedOutboundPorts" エラーは、指定されたノード数、送信フロントエンド IP アドレスの数、およびノードごとに割り当てられたポートの数が、実行可能な構成を構成していない場合に発生します。
解決策
"InvalidLoadBalancerProfileAllocatedOutboundPorts" のエラーを解決するためには、次の手順を実行してください。
次の式を使用して、目的の構成が可能かどうかを確認します。
64,000 ports per IP / <outbound ports per node> * <number of outbound IPs> = <maximum number of nodes in the cluster>注
このチェックを実行するときは、クラスターのアップグレードやその他の操作中に発生するノードの急増を考慮してください。 アップグレード操作では、AKS は既定で 1 つのバッファー ノードに設定されますが、この数は maxSurge パラメーターを使用して変更できます。
クラスターのノード数、送信フロントエンド IP アドレスの数、またはノードあたりの SNAT ポートの数を変更します。
割り当てられた送信ポートを構成する方法の詳細と、必要なポート数の例と計算については、「 割り当てられた送信ポートの構成」を参照してください。
リファレンス
送信接続での送信元ネットワーク アドレス変換 (SNAT) を使用する
お問い合わせはこちらから
ご質問がある場合は、 Azure コミュニティサポートにお問い合わせください。 Azure フィードバック コミュニティに製品フィードバックを送信することもできます。