Kubernetes では、Container Networking Interface (CNI) プラグインを使用して Kubernetes クラスターのネットワークを管理します。 CNET は、ポッドへの IP アドレスの割り当て、ポッド間のネットワーク ルーティング、Kubernetes Service ルーティングなどを担当します。
Azure Kubernetes Service (AKS) では、 オーバーレイ ネットワークと フラット ネットワークという 2 つの主要なネットワーク モデルが使用されます。
オーバーレイ ネットワーク:
- ポッドに対して論理的に分離された CIDR 範囲を使用して、VNet IP アドレス空間を節約します。
- クラスター スケールの最大サポート。
- 単純な IP アドレス管理。
フラット ネットワーク:
- ポッドは完全な VNet 接続を取得し、接続されたネットワークからプライベート IP アドレスを介して直接アクセスできます。
- 大規模で非フラグ化された VNet IP アドレス空間が必要です。
ネットワーク モデルを選択するときは、各 CNI プラグインのユース ケースと、使用するネットワーク モデルの種類を考慮してください。
| CNI プラグイン | ネットワーク モデル | ユースケースの注目点 |
|---|---|---|
| Azure CNI オーバーレイ | オーバーレイ | - VNET IP 保護に最適 - API Server でサポートされる最大ノード数 + ノードあたり 250 ポッド - よりシンプルな構成 - 外部ポッドの直接 IP アクセスなし |
| Azure CNI ポッド サブネット | フラット | - 外部ポッドへの直接アクセス - 効率的な VNet IP の使用 または 大規模なクラスター スケールのサポートのためのモード |
| Azure CNI ノード サブネット | フラット | - 外部ポッドへの直接アクセス - よりシンプルな構成 - 制限付きスケール - VNet IP の非効率的な使用 |
CNI オーバーレイまたは CNI が有効になっているクラスターに Application Gateway for Containers をプロビジョニングすると、Application Gateway for Containers によって目的のネットワーク構成が自動的に検出されます。 CNI オーバーレイまたは CNI を指定するために、ゲートウェイまたはイングレス API の構成に変更は必要ありません。
コンテナー用 CNI オーバーレイと Application Gateway
ポッドのプライベート CIDR 空間用の別のルーティング ドメインが Azure ネットワーク スタックに作成され、これによりポッド間の直接通信用オーバーレイ ネットワークが作成されます。 Application Gateway for Containers がプロビジョニングされると、オーバーレイ ルーティング ドメインがさらに Application Gateway for Containers サブネットに拡張され、Application Gateway for Containers からの要求をポッドに直接プロキシできます。
Application Gateway for Containers では、クラスター内で実行されている Azure ネットワーク ポリシー、Calico、Cilium Kubernetes ネットワーク ポリシーがサポートされます。
制限事項
- ALB コントローラー: CNI オーバーレイを利用するには、バージョン 1.7.9 以降を実行している必要があります。
- サブネット サイズ: Application Gateway for Containers サブネットは /24 プレフィックスである必要があります。サブネットごとにサポートされているデプロイは 1 つだけです。 大きいプレフィックスまたは小さいプレフィックスはサポートされていません。
- リージョン VNet ピアリング: リージョン A の仮想ネットワークにデプロイされた Application Gateway for Containers と、リージョン A の仮想ネットワーク内の AKS クラスター ノードはサポートされていません。
- グローバル VNet ピアリング: リージョン A の仮想ネットワークにデプロイされたコンテナー用 Application Gateway と、リージョン B の仮想ネットワーク内の AKS クラスター ノードはサポートされていません。
CNI と Application Gateway for Containers
Application Gateway for Containers では、Kubernetes クラスター内で実行されている Azure CNI のさまざまなデプロイがサポートされています。
- 動的 IP 割り当て用の Azure CNI
- 静的ブロック割り当ての Azure CNI
どちらの場合も、Application Gateway for Containers では、クラスター内で実行されている Azure ネットワーク ポリシー、Calico、Cilium Kubernetes ネットワーク ポリシーがサポートされます。
Kubenet と Application Gateway for Containers
Kubenet は、Application Gateway for Containers ではサポートされていません。 Kubenet を使用している場合は、 CNI オーバーレイにアップグレードすることをお勧めします。
FAQ
Q: Application Gateway for Containers を使用して既存のクラスターを CNI から CNI オーバーレイにアップグレードできますか?
A: はい。AKS クラスターを CNI から CNI オーバーレイにアップグレードすると、Application Gateway for Containers によって変更が自動的に検出されます。 トラフィックの中断が発生する可能性があるため、メンテナンス期間中にアップグレードをスケジュールすることをお勧めします。 コントローラーは、CNI オーバーレイのサポートを検出して構成するために、クラスターのアップグレード後に数分かかる場合があります。
Warnung
アップグレードする前に、Application Gateway for Containers サブネットが /24 であることを確認します。 より大きいサブネット (/23 以上) を使用して CNI から CNI オーバーレイにアップグレードすると、停止が発生し、/24 サブネット サイズで Application Gateway for Containers サブネットを再作成する必要があります。
Q: Kubenet を使用して既存のクラスターを CNI オーバーレイにアップグレードできますか?
A: はい。ただし、Kubenet を使用したクラスターへの Application Gateway for Containers のインストールはサポートされていません。 CNI オーバーレイへのアップグレード後に Application Gateway for Containers をインストールします。