Azure Kubernetes Service (AKS) CNI ネットワークの概要

Kubernetes では、Kubernetes クラスターのネットワークを管理するために Container Networking Interface (CNI) プラグインが使用されます。 CNI プラグインは、ポッドへの IP アドレスの割り当て、ポッド間のネットワーク トラフィックのルーティング、Kubernetes サービス トラフィックのルーティングなどを処理します。

Azure Kubernetes Service (AKS)では、ネットワーク要件に応じて、クラスターで使用できる複数の CNI ネットワーク構成が提供されます。 ポッド ネットワークを計画するときは、IP アドレス管理 (IPAM) オプションと、ネットワーク データ プレーンのルーティングとトランスポート テクノロジを選択します。

AKS のネットワーク モデル

AKS クラスターの IPAM オプションの選択は、ニーズに最適なネットワーク モデルによって大きく異なります。 各モデルには、AKS クラスターを計画するときに考慮する必要がある独自の長所と短所があります。

AKS では、次の 2 つの主要なネットワーク モデルが使用されます。

  • オーバーレイ ネットワーク:

    • ポッドに対して論理的に分離されたクラスレス Inter-Domain ルーティング (CIDR) 範囲を使用して、仮想ネットワーク (VNet) の IP アドレス空間を節約します。
    • クラスター スケールの最大サポートを提供します。
    • IP アドレスの簡単な管理を提供します。
  • フラット ネットワーク:

    • ポッドの完全な VNet 接続を提供します。 ポッドには、接続されたネットワークからのプライベート IP アドレスを介して直接アクセスできます。
    • VNet には、フラグメント化されていない大きな IP アドレス空間が必要です。

どちらのネットワーク モデルでも、複数の IPAM オプションがサポートされています。 モデルの主な違いは、ポッドの IP アドレスを割り当てる方法と、トラフィックがクラスターから出る方法です。

Azure CNI の場合、IPAM オプションはネットワーク データ プレーンとは別です。 CNI オーバーレイ、Azure CNI ポッド サブネット、または Azure CNI ノード サブネットAzure、Cilium データ プレーンによって提供される Azure CNI を使用できます。 IPAM オプションとデータ プレーン オプションの詳細については、「 AKS のポッド ネットワークを計画する」を参照してください。

オーバーレイ ネットワーク

AKS のオーバーレイ ネットワークでは、VNet 内のノード サブネットとは異なる個別のポッド CIDR からポッド IP アドレスが割り当てられます。 この構成により、フラット ネットワーク モデルよりもシンプルで、多くの場合、スケーラビリティが向上します。

オーバーレイ ネットワークでは、ポッドは互いに直接通信できます。 クラスターを離れるトラフィックは、ノードの IP アドレスに変換されたソース ネットワーク アドレス (SNAT) です。 受信ポッドの IP トラフィックは、ロード バランサーなどのサービスを介してルーティングされます。 ポッドの IP アドレスは、ノードの IP アドレスの背後に "非表示" になります。 この方法により、クラスター内の仮想ネットワークに必要な IP アドレスの数が減ります。

オーバーレイ ネットワークで 3 つのポッドがそれぞれ実行されている 2 つのノードを示す図。クラスター外のエンドポイントへのポッド トラフィックは、ネットワーク アドレス変換を介してルーティングされます。

オーバーレイ ネットワークの場合、AKS は CNI オーバーレイAzure提供します。 ほとんどのシナリオでは、この IPAM オプションを使用します。

フラット ネットワーク

オーバーレイ ネットワークとは異なり、AKS のフラット ネットワーク モデルでは、AKS ノードと同じAzure仮想ネットワーク内のサブネットからポッドに IP アドレスが割り当てられます。 プライベート ネットワーク トラフィックの場合、宛先に表示される送信元 IP アドレスは IPAM オプションによって異なります。 Azure CNI ポッド サブネットは、接続された仮想ネットワーク全体でポッドの IP アドレスを保持します。 Azure CNI ノード サブネットでは、クラスター仮想ネットワーク内の宛先にはポッド IP アドレスが表示されますが、クラスター仮想ネットワークの外部の宛先にはノード IP アドレスが表示されます。 インターネット エグレスが有効になっている場合、クラスターの 構成された送信方法 によって、インターネットの宛先に表示されるパブリック ソース IP アドレスが決まります。

フラット ネットワーク モデルで実行されている 2 つのノードと、それぞれ 3 つのポッドを示す図。

AKS には、フラット ネットワーク用の 2 つのAzure CNI IPAM オプションが用意されています。

AKS の IPAM オプションを選択する

IPAM オプションを選択する場合は、いくつかの要因を考慮してください。 各ネットワーク モデルには、独自の長所と短所があります。 クラスターに最適な選択は、特定の要件によって異なります。

ユース ケースの比較

IPAM オプション ネットワーク モデル ユース ケースの特徴
Azure CNI オーバーレイ Overlay • 仮想ネットワークの IP を節約するのに最適
• API サーバーでサポートされる最大ノード数に加えて、ノードあたり 250 ポッド
• よりシンプルな構成
• 外部ポッドの直接 IP アクセスなし
Azure CNI ポッド サブネット Flat • 外部ポッドへの直接アクセス
•仮想ネットワーク または 大規模なクラスタースケールのサポートのための効率的なIP使用のためのモード(プレビュー)
Kubenet (レガシ) Overlay • 2028 年 3 月 31 日に廃止。提供終了日より前Azure CNI オーバーレイに移行する
• IP保護の優先順位付け
• 制限付きスケール
• 手動ルート管理
Azure CNI ノード サブネット (レガシ) Flat • 外部ポッドへの直接アクセス
• よりシンプルな構成
• 制限付きスケール
• 仮想ネットワークでの IP の非効率的な使用

機能の比較

Feature Azure CNI オーバーレイ Azure CNI ポッド サブネット Azure CNI ノード サブネット (レガシ) Kubenet (レガシ)
既存または新規の仮想ネットワークへのクラスターのデプロイ Supported Supported Supported 手動ユーザー定義ルート (UDR) でサポートされます
ポッドと仮想マシン (VM)、同じ仮想ネットワーク内の VM、またはピアリングされた仮想ネットワークとの間の接続 ポッドが開始されました 両方の方法 両方の方法 ポッドが開始されました
仮想プライベート ネットワーク (VPN) と Azure ExpressRoute 経由のオンプレミス アクセス ポッドが開始されました 両方の方法 両方の方法 ポッドが開始されました
サービス エンドポイントへのアクセス Supported Supported Supported Supported
ロード バランサーを介したサービスの公開 Supported Supported Supported Supported
Azure Application Gateway イングレス コントローラーを介したサービスの公開 Supported Supported Supported Supported
Application Gateway for Containers を介したサービスの公開 Supported Supported Supported サポートされていません
Windows ノード プール Supported Supported Supported サポートされていません
既定の Azure DNS とプライベート ゾーン Supported Supported Supported Supported
複数のクラスター間での仮想ネットワーク サブネットの共有 Supported Supported Supported サポートされていません

ネットワーク モデル間のサポート範囲

使用する IPAM オプションに応じて、次のいずれかの方法でクラスターの仮想ネットワーク リソースをデプロイできます。

  • Azure プラットフォームでは、AKS クラスターの作成時に仮想ネットワーク リソースを自動的に作成および構成できます。
  • 仮想ネットワーク リソースを手動で作成して構成し、AKS クラスターを作成するときにそれらのリソースにアタッチすることができます。

サービス エンドポイントや UDR のような機能はサポートされていますが、AKS のサポート ポリシーで、どのような変更を行うことができるかが定義されています。 例えば次が挙げられます。

  • AKS クラスターの仮想ネットワーク リソースを手動で作成する場合は、独自の UDR またはサービス エンドポイントを構成するときにサポートされます。
  • Azure プラットフォームで AKS クラスター用の仮想ネットワーク リソースを自動的に作成する場合、それらの AKS 管理対象リソースを手動で変更して独自の UDR またはサービスエンドポイントを構成することはできません。

AKS CNI ネットワークの前提条件

AKS のネットワーク構成を計画するときは、次の要件と考慮事項に留意してください。

  • ネットワーク分離クラスターを使用しない限り、AKS クラスターの仮想ネットワークは、必要なエンドポイントへの送信インターネット接続を許可する必要があります。 ネットワーク分離クラスターは、送信インターネット接続なしでブートストラップできます。

  • AKS アドレス範囲には、次の制限があります。

    予約済み CIDR 範囲 対象 状態
    169.254.0.0/16 Kubernetes サービス、ポッド、クラスターの仮想ネットワーク アドレス範囲 すべての AKS クラスター
    192.0.2.0/24 Kubernetes サービス、ポッド、クラスターの仮想ネットワーク アドレス範囲 すべての AKS クラスター
    172.30.0.0/16 Kubernetes サービス、ポッド、クラスターの仮想ネットワーク アドレス範囲 すべての AKS クラスター
    172.31.0.0/16 Kubernetes サービス、ポッド、クラスターの仮想ネットワーク アドレス範囲 すべての AKS クラスター

    AKS は、クラスターの作成または更新中に予約範囲と重複するポッド CIDR を拒否します。 たとえば、範囲に172.30.0.0/16と172.31.0.0/16が含まれているため、172.16.0.0/12は無効です。

  • 独自の仮想ネットワークを使用するシナリオでは、AKS クラスターが使用するクラスター ID には、仮想ネットワーク内のサブネットに対するネットワーク 共同作成者 アクセス許可が少なくとも必要です。

  • 組み込みのネットワーク共同作成者ロールを使用する代わりに カスタム ロールを定義する場合は、次のアクセス許可を含めます。

    許可 必要な場合
    Microsoft.Network/virtualNetworks/subnets/join/action カスタム ロールを使用する場合は常に
    Microsoft.Authorization/roleAssignments/write カスタム ロールを使用する場合は常に
    Microsoft.Network/virtualNetworks/subnets/read 独自のサブネットとCIDRを定義する場合のみ
  • AKS ノード プールに割り当てられたサブネットを委任されたサブネットにすることはできません。

  • AKS では Network Security Groups (NSG) がそのサブネットに適用されず、そのサブネットに関連付けられている NSG が変更されることもありません。 独自のサブネットを指定し、そのサブネットに関連付けられている NSG を追加する場合は、NSG のセキュリティ規則でノード CIDR 範囲内のトラフィックが許可されていることを確認する必要があります。 Azure CNI オーバーレイでは、NSG 拒否ルールがポッド CIDR トラフィックに影響する場合は、ノード CIDR からポッド CIDR へのトラフィック、およびすべてのポートとプロトコルのポッド CIDR からポッド CIDR へのトラフィックも許可する必要があります。 詳細については、「Azure CNI オーバーレイを使用したネットワーク セキュリティ グループ」を参照してください。

  • Container Network Service (CNS) は、ポッドのネットワークを割り当て、追跡し、プログラムする Azure Kubernetes Service CNI ネットワーク内のノード ローカル サービスです。 このコンポーネントは、既定でテレメトリ (メトリックとログ) をクラスターから Microsoft マネージド Application Insights エンドポイントに送信し、ポッド ネットワーク IP アドレスの割り当ての問題のトラブルシューティングを迅速に行えるようにします。