次の方法で共有


Application Gateway イングレス コントローラーとは

Application Gateway イングレス コントローラー (AGIC) は、Azure Kubernetes Service (AKS) クラスターがネイティブ Azure Application Gateway L7 ロード バランサーを使用してワークロードをインターネットに公開できるようにする Kubernetes アプリケーションです。 AGIC は、ホストされている Kubernetes クラスターを監視し、選択したサービスがインターネットに公開されるように Application Gateway を継続的に更新します。

イングレス コントローラーは、AKS クラスター上の独自のポッドで実行されます。 AGIC は、Kubernetes リソースのサブセットの変更を監視します。 AKS クラスターの状態は Application Gateway 固有の構成に変換され、Azure Resource Manager (ARM) に適用されます。

この記事では、AGIC、デプロイ オプション (Helm および AKS アドオン)、およびサポートされているコンテナー ネットワーク構成の利点について説明します。

ヒント

Kubernetes イングレス ソリューション 用の Application Gateway for Containers を検討してください。 詳細については、「 クイック スタート: Application Gateway for Containers ALB コントローラーのデプロイ」を参照してください。

Azure Application Gateway イングレス コントローラーの利点

AGIC を使用すると、AKS クラスターの前に別のロード バランサーまたはパブリック IP アドレスが不要になります。 要求が AKS クラスターに到達する前に、データパス内の複数のホップを回避します。 Application Gateway は、プライベート IP アドレスを直接使用してポッドと通信し、NodePort または KubeProxy サービスを必要としません。 この機能により、デプロイのパフォーマンスも向上します。

イングレス コントローラーは、 および SKU でのみサポートされ、自動スケーリングの利点も得られます。 Application Gateway は、トラフィックの負荷の増減に反応し、それに応じてスケールでき、ご利用の AKS クラスターのリソースを消費しません。

AGIC に加えて Application Gateway を使用すると、TLS ポリシーと Web Application Firewall (WAF) 機能を提供することで、AKS クラスターを保護することもできます。

インターネットから Application Gateway 経由で AGIC を使用して AKS クラスターに流れるトラフィックを示す図。

AGIC は、Kubernetes イングレス リソースと、サービスとデプロイ/ポッドを使用して構成されます。 ネイティブ Azure Application Gateway L7 ロード バランサーを使用すると、AGIC には次の機能があります。

  • URL ルーティング
  • Cookie ベースのアフィニティ
  • TLS 終端
  • エンドツーエンド TLS
  • パブリック、プライベート、ハイブリッドの Web サイトのサポート
  • Web アプリケーション ファイアウォールを統合

Warnung

既定では、AGIC はリンク先の Application Gateway の完全な所有権を前提としています。 AGIC は、Kubernetes イングレス リソースで定義されていない既存の Application Gateway 構成をすべて上書きします。 APPLICATION Gateway で以前に構成したリスナー、バックエンド プール、ルール、またはその他の設定は、AGIC が有効になっていると削除または置き換えられます。 既存の Application Gateway で AGIC を有効にする前に、Azure ポータルからテンプレートをエクスポートして、Application Gateway 構成をバックアップします。 詳細については、「 Application Gateway デプロイのバックアップ」を参照してください。

AGIC を既存の Application Gateway 構成と共存させる必要がある場合は、「 共有 Application Gateway のデプロイを設定 する (Helm のみ)」を参照してください。

Helm デプロイと AKS アドオンの違い

アドオンとして Helm または AKS を使用して、AKS クラスターに AGIC をデプロイできます。 AGIC を AKS アドオンとしてデプロイすることの主な利点は、Helm を使用したデプロイよりもシンプルであることです。 新しいセットアップでは、新しい Application Gateway と、AGIC をアドオンとして有効にした新しい AKS クラスターを、Azure CLIの 1 行にデプロイできます。 アドオンは、フル マネージド サービスでもあり、自動更新やサポートの強化などの追加のメリットが提供されます。 AGIC (Helm および AKS アドオン) をデプロイする方法は、どちらも Microsoft によって完全にサポートされています。 さらに、このアドオンを使用すると、ファースト クラスのアドオンとして AKS との統合が向上します。

AGIC アドオンをポッドとして AKS クラスターにデプロイしますが、Helm デプロイ バージョンと AGIC のアドオン バージョンにはいくつかの違いがあります。 次の一覧では、相違点が強調表示されています。

  • AKS アドオンで Helm デプロイメントの値を変更することはできません。
    • は、既定では 5 に設定されています
    • は既定で false に設定されています。use-private-ip 注釈を使用してこの設定を上書きする
    • は、アドオンではサポートされていません
    • は、アドオンではサポートされていません
    • は、アドオンではサポートされていません
  • Helm を使用してデプロイされた AGIC では、ProhibitedTargets がサポートされています。つまり、AGIC は、他の既存のバックエンドに影響を与えることなく、AKS クラスター専用に Application Gateway を構成できます。 AGIC アドオンでは、現時点ではこの機能はサポートされていません。
  • AGIC アドオンはマネージド サービスであるため、AGIC アドオンの最新バージョンの更新プログラムを自動的に受け取ります。 これに対し、Helm を使用して AGIC をデプロイする場合は、AGIC を手動で更新する必要があります。

Note

AKS クラスターごとにデプロイできる AGIC アドオンは 1 つだけであり、各 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 オーバーレイ オーバーレイ - 仮想ネットワークの IP 保護に最適
- API Server でサポートされる最大ノード数 + ノードあたり 250 ポッド
- よりシンプルな構成
-外部ポッドの直接 IP アクセスなし
Azure CNI ポッド サブネット フラット - 外部ポッドへの直接アクセス
- 効率的な仮想ネットワーク IP の使用 または 大規模なクラスター スケールのサポートのためのモード
Azure CNI ノード サブネット フラット - 外部ポッドへの直接アクセス
- よりシンプルな構成
- 制限付きスケール
- 仮想ネットワーク IP の非効率的な使用

CNI オーバーレイまたは CNI が有効になっているクラスターに Application Gateway for Containers をプロビジョニングすると、Application Gateway for Containers によって目的のネットワーク構成が自動的に検出されます。 CNI オーバーレイまたは CNI を指定するためにゲートウェイまたはイングレス API の構成を変更する必要はありません。

CNI オーバーレイAzure使用する場合は、次の制限事項を考慮してください。

  • AGIC コントローラー: CNI オーバーレイを利用するには、バージョン v1.9.1 以上を実行している必要があります。
  • サブネット サイズ: Application Gateway サブネットは最大 /24 プレフィックスである必要があります。サブネットごとにサポートされているデプロイは 1 つだけです。
  • サブネット委任: Application Gateway サブネットには、Microsoft.Network/applicationGateways のサブネット委任が必要です。
  • リージョン仮想ネットワーク ピアリング: Application Gateway を 1 つのリージョン内の仮想ネットワークにデプロイし、AKS クラスター ノードを同じリージョン内の仮想ネットワークにデプロイすることはできません。
  • グローバル仮想ネットワーク ピアリング: Application Gateway を 1 つのリージョンの仮想ネットワークにデプロイし、AKS クラスター ノードを別のリージョンの仮想ネットワークにデプロイすることはできません。
  • Azure CNI オーバーレイと Application Gateway イングレス コントローラーは、Azure Government クラウドではサポートされていません。また、21Vianet (中国Azure) によって運用されているMicrosoft Azureではサポートされていません。

Note

Application Gateway イングレス コントローラーは、Kubenet または CNI から CNI オーバーレイへの AKS クラスターのアップグレードを自動的に検出します。 トラフィックの中断が発生する可能性があるメンテナンス期間中にアップグレードをスケジュールします。 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 をデプロイします。