次の方法で共有


SubnetIsFull エラー コードのトラブルシューティング

この記事では、Microsoft Azure Kubernetes Service (AKS) クラスターをスケーリングしようとしたときに発生する SubnetIsFull エラーを特定して解決する方法について説明します。

前提条件

  • Azure CLI (バージョン 2.0.59 以降のバージョン)

現象

AKS クラスターをスケーリングしようとすると、次のエラー メッセージが表示されます。

"code": "SubnetIsFull"

"message": "subnet <subnet-name> アドレス プレフィックス <subnet-prefix> に、 <new-ip-count> IP アドレスに対する十分な容量がありません。

原因

AKS クラスターにノードを追加 (スケールアウト) するには、ノード プールがデプロイされているサブネットからさらに多くの IP アドレスを使用する必要があります。 クラスター スケール操作を正常に完了するために必要な新しい IP アドレスの正確な数は、クラスターが使用するネットワーク プラグインによって異なります。 これらの各ネットワーク モデルでの IP アドレスの割り当て方法については、「 AKS のアプリケーションのネットワークの概念を参照してください。

Note

Azure では、サブネットごとに 5 つの IP アドレスが予約されます。 サブネット内の最初のアドレスはネットワーク ID 用で、その後に Azure によって内部的に使用される 3 つのアドレスが続きます。 サブネット内の最後のアドレスは、ブロードキャスト パケット用に予約されています。 詳細については、「これらのサブネット内の IP アドレスの使用に関する制限はありますか」をご覧ください。

ソリューション

既存のノード プール内のサブネットのクラスレスドメイン間ルーティング (CIDR) アドレス空間を更新しようとしても、現在サポートされていません。 ワークロードを大規模なサブネット内の新しいノード プールに移行するには、次の手順に従います。

  1. 既存のサブネットよりも広い CIDR アドレス範囲を含むサブネットをクラスター仮想ネットワークに作成します。 クラスターのサブネットのサイズを適切に設定する方法については、「クラスターのプラン IP アドレス指定を参照してください。

  2. --vnet-subnet-id パラメーターと共に az aks nodepool add コマンドを実行して、新しいサブネットにノード プールを作成します。

  3. 古いノード プール内のノードをドレインして、ワークロードを新しいノード プールに移行します。 AKS ワーカー ノードを安全にドレインする方法については、「 Safely Drain a Node」を参照してください。

  4. az aks nodepool delete コマンドを実行して、元のノード プールを削除します。

詳細

サードパーティのお問い合わせ窓口に関する免責事項

サードパーティのお問い合わせ窓口に関する情報は、ユーザーの便宜のために提供されているものであり、 この連絡先情報は、予告なしに変更される可能性があります。 マイクロソフトは、掲載されている情報に対して、いかなる責任も負わないものとします。

お問い合わせはこちらから

質問がある場合やヘルプが必要な場合は、サポート要求を作成するか、Azure コミュニティ サポートにお問い合わせください。 Azure フィードバック コミュニティに製品フィードバックを送信することもできます。