次の方法で共有


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

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

前提条件

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

現象

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

"code": "SubnetIsFull"

"message": "アドレス プレフィックス subnet-prefix を持つサブネット <サブネット名>には、new-ip-count> IP アドレスに十分な<容量がありません。<>

原因

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

注:

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

ソリューション

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

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

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

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

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

詳細

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

Microsoft では、このトピックに関する追加情報を見つけるのに役立つサード パーティの連絡先情報を提供しています。 将来予告なしに変更されることがあります。 Microsoft は、第三者の連絡先情報の正確性を保証しません。

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

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