Application Gateway イングレス コントローラー (AGIC) は Kubernetes アプリケーションであり、これにより、Azure Kubernetes Service (AKS) のお客様が、Azure のネイティブ Application Gateway L7 ロード バランサーを活用してクラウド ソフトウェアをインターネットに公開できるようにします。 AGIC では、ホストされている Kubernetes クラスターを監視し、Application Gateway を継続的に更新して、選択されたサービスがインターネットに公開されるようにします。
イングレス コントローラーは、お客様の AKS の独自のポッドで実行されます。 AGIC では、Kubernetes リソースのサブセットに変更がないかを監視します。 AKS クラスターの状態は Application Gateway の特定の構成に変換され、Azure Resource Manager (ARM) に適用されます。
ヒント
Kubernetes イングレス ソリューション 用の Application Gateway for Containers を検討してください。 詳細については、「 クイック スタート: Application Gateway for Containers ALB コントローラーのデプロイ」を参照してください。
Azure Application Gateway イングレス コントローラーの利点
AGIC を使用すると、AKS クラスターの前に別のロード バランサー/パブリック IP アドレスを用意する必要がなくなり、要求が AKS クラスターに到達する前に、データパス内の複数のホップを回避できます。 Application Gateway は、プライベート IP アドレスを直接使用してポッドと通信し、NodePort サービスや KubeProxy サービスを必要としません。 この機能により、デプロイのパフォーマンスも向上します。
イングレス コントローラーは、Standard_v2 および WAF_v2 SKU でのみサポートされ、自動スケーリングの利点も得られます。 Application Gateway は、トラフィックの負荷の増減に反応し、それに応じてスケールでき、ご利用の AKS クラスターのリソースを消費しません。
AGIC に加えて Application Gateway を使用すると、TLS ポリシーと Web アプリケーション ファイアウォール (WAF) 機能を提供して、ご利用の AKS クラスターを保護することもできます。
AGIC は、サービスおよびデプロイ/ポッドと共に、Kubernetes のイングレス リソースを使用して構成されます。 これは、Azure のネイティブ Application Gateway L7 ロード バランサーを使用して、さまざまな機能を提供します。 以下にいくつか例を挙げます。
- URL ルーティング
- Cookie ベースのアフィニティ
- TLS 終端
- エンドツーエンド TLS
- パブリック、プライベート、ハイブリッド Web サイトのサポート
- Web アプリケーション ファイアウォールを統合
Helm デプロイと AKS アドオンの違い
AKS クラスター用の AGIC をデプロイする方法は 2 つあります。 最初の方法は、Helm を通すことです。2 つ目は、AKS をアドオンとして使用することです。 AGIC を AKS アドオンとしてデプロイすることの主な利点は、Helm を使用したデプロイよりもシンプルであることです。 新しいセットアップでは、Azure CLI の 1 つの行で、新しいアプリケーション ゲートウェイと AKS クラスターを、アドオンとして有効にした AGIC と共にデプロイできます。 アドオンは、フル マネージド サービスでもあり、自動更新やサポートの強化などの追加のメリットが提供されます。 AGIC (Helm および AKS アドオン) をデプロイする方法は、どちらも Microsoft によって完全にサポートされています。 また、アドオンを使用すると、第一級のアドオンとしての AKS との統合を向上させることができます。
AGIC アドオンは顧客の AKS クラスターにポッドとしてデプロイされますが、AGIC の Helm デプロイ バージョンとアドオン バージョンにはいくつかの違いがあります。 この 2 つのバージョンの違いの一覧を以下に示します。
- AKS アドオンで Helm 展開の値を変更することはできません。
-
verbosityLevelは、既定では 5 に設定されています -
usePrivateIpは、既定では false に設定されています。この設定は、use-private-ip 注釈によって上書きできます -
sharedは、アドオンではサポートされていません -
reconcilePeriodSecondsは、アドオンではサポートされていません -
armAuth.typeは、アドオンではサポートされていません
-
- Helm を通してデプロイされた AGIC では ProhibitedTargets がサポートされます。つまり、AGIC では、他の既存のバックエンドに影響を与えずに、AKS クラスター専用のアプリケーション ゲートウェイを構成できます。 AGIC アドオンでは、現時点ではこの機能はサポートされていません。
- AGIC アドオンはマネージド サービスであるため、顧客の AGIC アドオンは自動的に最新バージョンに更新されます。この点は、Helm を使用してデプロイされる AGIC (顧客が手動で AGIC を更新する必要があります) とは異なります。
Note
お客様は、AKS クラスターあたり 1 つの AGIC アドオンのみをデプロイできます。現在、各 AGIC アドオンでは、1 つの Application Gateway のみをターゲットにすることができます。 クラスターあたり複数の AGIC を必要とする、または 1 つの Application Gateway をターゲットとした複数の AGIC を必要とするデプロイでは、Helm を通じてデプロイされた AGIC を引き続き使用してください。
Helm と AGIC アドオンはどちらも ExternalName サービスをサポートしていません。
コンテナー ネットワークと AGIC
Application Gateway イングレス コントローラーでは、次の AKS ネットワーク オファリングがサポートされています。
- Kubenet
- CNI
- CNI オーバーレイ
Azure CNI と Azure CNI オーバーレイは、Application Gateway イングレス コントローラーに推奨される 2 つのオプションです。 ネットワーク モデルを選択するときは、各 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 の構成に変更は必要ありません。
Azure CNI オーバーレイでは、次の制限事項を考慮してください。
- AGIC コントローラー: CNI オーバーレイを利用するには、バージョン v1.9.1 以降を実行している必要があります。
- サブネット サイズ: Application Gateway サブネットは最大 /24 プレフィックスである必要があります。サブネットごとにサポートされているデプロイは 1 つだけです。
- サブネット委任: Application Gateway サブネットには、Microsoft.Network/applicationGateways のサブネット委任が必要です。
- リージョン VNet ピアリング: リージョン A の仮想ネットワークにデプロイされた Application Gateway と、リージョン A の仮想ネットワーク内の AKS クラスター ノードはサポートされていません。
- グローバル VNet ピアリング: リージョン A の仮想ネットワークにデプロイされた Application Gateway と、リージョン B の仮想ネットワーク内の AKS クラスター ノードはサポートされていません。
- Application Gateway イングレス コントローラーを使用した Azure CNI オーバーレイは、Azure Government クラウドまたは 21Vianet (中国の Azure) が運営する Microsoft Azure ではサポートされていません。
Note
Kubnet または CNI から CNI オーバーレイへの AKS クラスターのアップグレードは、Application Gateway イングレス コントローラーによって自動的に検出されます。 トラフィックの中断が発生する可能性があるため、メンテナンス期間中にアップグレードをスケジュールすることをお勧めします。 コントローラーは、CNI オーバーレイのサポートを検出して構成するために、クラスターのアップグレード後に数分かかる場合があります。
Warnung
アップグレードする前に、Application Gateway サブネットが /24 以下のサブネットであることを確認します。 より大きなサブネット (/23) を使用して CNI から CNI オーバーレイにアップグレードすると、停止が発生し、サポートされているサブネット サイズで Application Gateway サブネットを再作成する必要があります。
次のステップ
- AKS アドオンのグリーンフィールド デプロイ: 何もない状態のインフラストラクチャに、AGIC アドオン、AKS、Application Gateway をインストールする手順です。
- AKS アドオンのブラウンフィールド デプロイ: Application Gateway が既にある AKS クラスターに AGIC アドオンをインストールします。
- Helm のグリーンフィールド デプロイ: 何もない状態のインフラストラクチャに、AGIC (Helm を使用)、新しい AKS クラスター、新しい Application Gateway をインストールします。
- Helm のブラウンフィールド デプロイ: 既存の AKS クラスターと Application Gateway に、Helm を使って AGIC をデプロイします。