Application Gateway イングレス コントローラーとはWhat is Application Gateway Ingress Controller?

Application Gateway イングレス コントローラー (AGIC) は Kubernetes アプリケーションであり、これにより、Azure Kubernetes Service (AKS) のお客様が、Azure のネイティブ Application Gateway L7 ロード バランサーを活用してクラウド ソフトウェアをインターネットに公開できるようにします。The Application Gateway Ingress Controller (AGIC) is a Kubernetes application, which makes it possible for Azure Kubernetes Service (AKS) customers to leverage Azure's native Application Gateway L7 load-balancer to expose cloud software to the Internet. AGIC では、ホストされている Kubernetes クラスターを監視し、Application Gateway を継続的に更新して、選択されたサービスがインターネットに公開されるようにします。AGIC monitors the Kubernetes cluster it is hosted on and continuously updates an Application Gateway, so that selected services are exposed to the Internet.

イングレス コントローラーは、お客様の AKS の独自のポッドで実行されます。The Ingress Controller runs in its own pod on the customer’s AKS. AGIC では、Kubernetes リソースのサブセットに変更がないかを監視します。AGIC monitors a subset of Kubernetes Resources for changes. AKS クラスターの状態は Application Gateway の特定の構成に変換され、Azure Resource Manager (ARM) に適用されます。The state of the AKS cluster is translated to Application Gateway specific configuration and applied to the Azure Resource Manager (ARM).

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

AGIC を使用すると、AKS クラスターの前に別のロード バランサー/パブリック IP を用意する必要がなくなり、要求が AKS クラスターに到達する前に、データパス内の複数のホップを回避できます。AGIC helps eliminate the need to have another load balancer/public IP in front of the AKS cluster and avoids multiple hops in your datapath before requests reach the AKS cluster. Application Gateway は、プライベート IP を直接使用してポッドと通信し、NodePort および KubeProxy サービスを必要としません。Application Gateway talks to pods using their private IP directly and does not require NodePort or KubeProxy services. これにより、デプロイのパフォーマンスも向上します。This also brings better performance to your deployments.

イングレス コントローラーは、Standard_v2 および WAF_v2 SKU でのみサポートされ、自動スケールの利点も得られます。Ingress Controller is supported exclusively by Standard_v2 and WAF_v2 SKUs, which also brings you autoscaling benefits. Application Gateway は、トラフィックの負荷の増減に反応し、それに応じてスケールでき、ご利用の AKS クラスターのリソースを消費しません。Application Gateway can react in response to an increase or decrease in traffic load and scale accordingly, without consuming any resources from your AKS cluster.

AGIC に加えて Application Gateway を使用すると、TLS ポリシーと Web アプリケーション ファイアウォール (WAF) 機能を提供して、ご利用の AKS クラスターを保護することもできます。Using Application Gateway in addition to AGIC also helps protect your AKS cluster by providing TLS policy and Web Application Firewall (WAF) functionality.

Azure Application Gateway + AKS

AGIC は、サービスおよびデプロイ/ポッドと共に、Kubernetes のイングレス リソースを使用して構成されます。AGIC is configured via the Kubernetes Ingress resource, along with Service and Deployments/Pods. Azure のネイティブ Application Gateway L7 ロード バランサーを活用したさまざまな機能が用意されています。It provides a number of features, leveraging Azure’s native Application Gateway L7 load balancer. 以下にいくつか例を挙げます。To name a few:

  • URL ルーティングURL routing
  • Cookie ベースのアフィニティCookie-based affinity
  • TLS 終了TLS termination
  • エンドツーエンド TLSEnd-to-end TLS
  • パブリック、プライベート、ハイブリッド Web サイトのサポートSupport for public, private, and hybrid web sites
  • Web アプリケーション ファイアウォールを統合Integrated web application firewall

Helm デプロイと AKS アドオンの違いDifference between Helm deployment and AKS Add-On

AKS クラスター用の AGIC をデプロイする方法は 2 つあります。There are two ways to deploy AGIC for your AKS cluster. 最初の方法は、Helm を通すことです。2 つ目は、AKS をアドオンとして使用することです。The first way is through Helm; the second is through AKS as an add-on. AGIC を AKS アドオンとしてデプロイすることの主な利点は、Helm を通したデプロイよりもはるかにシンプルであることです。The primary benefit of deploying AGIC as an AKS add-on is that it's much simpler than deploying through Helm. 新しいセットアップでは、Azure CLI の 1 つの行で、新しいアプリケーション ゲートウェイと AKS クラスターを、アドオンとして有効にした AGIC と共にデプロイできます。For a new setup, you can deploy a new Application Gateway and a new AKS cluster with AGIC enabled as an add-on in one line in Azure CLI. アドオンは、フル マネージド サービスでもあり、自動更新やサポートの強化などの追加のメリットが提供されます。The add-on is also a fully managed service, which provides added benefits such as automatic updates and increased support. Helm を通してデプロイされた AGIC は AKS によってサポートされませんが、AKS アドオンとしてデプロイされた AGIC は AKS によってサポートされます。AGIC deployed through Helm is not supported by AKS, however, the AGIC deployed as an AKS add-on is supported by AKS.

AGIC アドオンは顧客の AKS クラスターにポッドとしてデプロイされますが、AGIC の Helm デプロイ バージョンとアドオン バージョンにはいくつかの違いがあります。The AGIC add-on is still deployed as a pod in the customer's AKS cluster, however, there are a few differences between the Helm deployment version and the add-on version of AGIC. この 2 つのバージョンの違いを次に示します。Below is a list of differences between the two versions:

  • AKS アドオンで Helm デプロイの値を変更することはできません。Helm deployment values cannot be modified on the AKS add-on:
    • verbosityLevel は、既定では 5 に設定されるverbosityLevel will be set to 5 by default
    • usePrivateIp は、既定では false に設定される。これは use-private-ip 注釈によって上書き可能usePrivateIp will be set to be false by default; this can be overwritten by the use-private-ip annotation
    • shared は、アドオンではサポートされないshared is not supported on add-on
    • reconcilePeriodSeconds は、アドオンではサポートされないreconcilePeriodSeconds is not supported on add-on
    • armAuth.type は、アドオンではサポートされないarmAuth.type is not supported on add-on
  • Helm を通してデプロイされた AGIC では ProhibitedTargets がサポートされます。つまり、AGIC では、他の既存のバックエンドに影響を与えずに、AKS クラスター専用のアプリケーション ゲートウェイを構成できます。AGIC deployed via Helm supports ProhibitedTargets, which means AGIC can configure the Application Gateway specifically for AKS clusters without affecting other existing backends. AGIC アドオンでは、現時点ではこれはサポートされていません。AGIC add-on doesn't currently support this.
  • AGIC アドオンはマネージド サービスであるため、顧客の AGIC アドオンは自動的に最新バージョンに更新されます。これは、顧客が手動で更新する必要がある Helm を通してデプロイされた AGIC とは異なります。Since AGIC add-on is a managed service, customers will automatically be updated to the latest version of AGIC add-on, unlike AGIC deployed through Helm where the customer must manually update AGIC.

注意

AGIC の AKS アドオンでのデプロイ方法は、現在プレビューの段階です。The AGIC AKS add-on method of deployment is currently in preview. まだプレビュー段階にある機能に対して運用環境のワークロードを実行することはお勧めしません。そのため、試してみる場合は、新しいクラスターをセットアップしてテストすることをお勧めします。We don't recommend running production workloads on features still in preview, so if you're curious to try it out, we'd recommend setting up a new cluster to test it out with.

次の表に、AGIC の Helm デプロイ バージョンと AKS アドオン バージョンで現在サポートされているシナリオの分類を示します。The following tables sort which scenarios are currently supported with the Helm deployment version and the AKS add-on version of AGIC.

AKS アドオンの AGIC (単一の AKS クラスター)AKS add-on AGIC (single AKS cluster)

1 つのアプリケーション ゲートウェイ1 Application Gateway 2 つ以上のアプリケーション ゲートウェイ2+ Application Gateways
1 つの AGIC1 AGIC はい、これはサポートされますYes, this is supported いいえ、これはバックログに入っていますNo, this is in our backlog
2 つ以上の AGIC2+ AGICs いいえ。クラスターごとにサポートされる AGIC は 1 つだけですNo, only 1 AGIC supported/cluster いいえ。クラスターごとにサポートされる AGIC は 1 つだけですNo, only 1 AGIC supported/cluster

Helm でデプロイされた AGIC (単一の AKS クラスター)Helm deployed AGIC (single AKS cluster)

1 つのアプリケーション ゲートウェイ1 Application Gateway 2 つ以上のアプリケーション ゲートウェイ2+ Application Gateways
1 つの AGIC1 AGIC はい、これはサポートされますYes, this is supported いいえ、これはバックログに入っていますNo, this is in our backlog
2 つ以上の AGIC2+ AGICs 共有された ProhibitedTarget 機能を使用して別の名前空間を監視する必要がありますMust use shared ProhibitedTarget functionality and watch separate namespaces はい、これはサポートされますYes, this is supported

Helm でデプロイされた AGIC (2 つ以上の AKS クラスター)Helm deployed AGIC (2+ AKS clusters)

1 つのアプリケーション ゲートウェイ1 Application Gateway 2 つ以上のアプリケーション ゲートウェイ2+ Application Gateways
1 つの AGIC1 AGIC 該当なしN/A 該当なしN/A
2 つ以上の AGIC2+ AGICs 共有された ProhibitedTarget 機能を使用する必要がありますMust use shared ProhibitedTarget functionality 該当なしN/A

次のステップNext steps