Application Gateway for Containers とは
Application Gateway for Containers は、Kubernetes クラスターで実行されているワークロード用のアプリケーション レイヤー (レイヤー 7) の 負荷分散と動的トラフィックの管理製品です。 これは、Azure のアプリケーション負荷分散ポートフォリオを拡張するもので、Application Gateway 製品ファミリの下の新しいオファリングです。
Application Gateway for Containers は、Azure Kubernetes Service (AKS) のお客様が Azure ネイティブの Application Gateway アプリケーション ロード バランサーを使用できるようにする Kubernetes アプリケーションである Application Gateway イングレス コントローラー (AGIC) が進化したものです。 現在の形式では、AGIC は Kubernetes リソースのサブセットの変更を監視し、Azure Resource Manager (ARM) を利用して、Application Gateway に適用します。
それはどのように機能するのでしょうか。
Application Gateway for Containers は、次の 3 つのコンポーネントで構成されます。
- Application Gateway for Containers リソース
- フロントエンド
- Associations
Application Gateway for Containers のデプロイでは、次の依存関係も参照されます。
- プライベート IP アドレス
- サブネットの委任
- ユーザー割り当てマネージド ID
Application Gateway for Containers のアーキテクチャを次の図に示します。
Application Gateway for Containers が受信要求を受け入れてバックエンド ターゲットにルーティングする方法の詳細については、「Application Gateway for Containers のコンポーネント」を参照してください。
機能とメリット
Application Gateway for Containers では、リリース時に次のようなまったく新しい機能が提供されます。
- トラフィック分割/重み付けラウンド ロビン
- バックエンド ターゲットへの相互認証
- Ingress API と Gateway API に対する Kubernetes のサポート
- 柔軟なデプロイ戦略
- パフォーマンスの向上、ポッド、ルート、プローブを追加または移動するためのほぼリアルタイムの更新の提供
Application Gateway for Containers は、AKS クラスターへのエラスティックでスケーラブルなイングレスを提供し、既存の Application Gateway とは異なる新しい ARM API のセットを備えた新しいデータ プレーンとコントロール プレーンで構成されます。 これらの API は、Application Gateway の現在の実装とは異なります。 Application Gateway for Containers は AKS クラスター データ プレーンの外部にあり、イングレスを担当します。 このサービスは、AKS クラスター内で実行され、Kubernetes Gateway API に準拠する ALB コントローラー コンポーネントによって管理されます。
負荷分散機能
Application Gateway for Containers では、トラフィック管理用に次の機能がサポートされています。
- 自動再試行
- 自動スケール
- 可用性ゾーンの回復性
- カスタムおよび既定の正常性プローブ
- ECDSA と RSA 証明書のサポート
- gRPC
- ヘッダーの書き換え
- HTTP/2
- HTTPS トラフィック管理:
- SSL ターミネーション
- エンド ツー エンドの SSL
- Ingress API と Gateway API のサポート
- 次のプレフィックス/完全一致に基づくレイヤー 7 の HTTP/HTTPS 要求転送:
- hostname
- パス
- ヘッダー
- クエリ文字列
- メソッド
- ポート (80/443)
- フロントエンド、バックエンド、またはエンドツーエンドへの相互認証 (mTLS)
- サーバー送信イベント (SSE) のサポート
- トラフィック分割/重み付けラウンド ロビン
- TLS ポリシー
- URL リダイレクト
- URL 書き換え
デプロイ戦略
Application Gateway for Containers の管理に関しては、次の 2 つのデプロイ戦略があります。
- Bring Your Own (BYO) デプロイ: このデプロイ戦略では、Application Gateway for Containers リソース、関連付けリソース、フロントエンド リソースのデプロイとライフサイクルが Azure portal、CLI、PowerShell、Terraform などを介していることが前提となっており、Kubernetes 内の構成で参照されます。
- Gateway API の場合: Kubernetes で新しいゲートウェイ リソースを作成するたびに、フロントエンド リソースを Azure で事前にプロビジョニングし、ゲートウェイ リソースによって参照する必要があります。 フロントエンド リソースの削除は Azure 管理者によって行われ、Kubernetes のゲートウェイ リソースが削除されたときには削除されません。
- ALB コントローラーによって管理: このデプロイ戦略では、Kubernetes にデプロイされた ALB コントローラーが Application Gateway for Containers リソースとそのサブリソースのライフサイクルを管理します。 ALB コントローラーは、ApplicationLoadBalancer カスタム リソースがクラスターで定義されたときに、Application Gateway for Containers リソースを作成し、そのライフサイクルはカスタム リソースのライフサイクルに基づきます。
- Gateway API の場合: ApplicationLoadBalancer リソースを参照するゲートウェイ リソースが作成されるたびに、ALB コントローラーは新しいフロントエンド リソースをプロビジョニングし、そのライフサイクルをゲートウェイ リソースのライフサイクルに基づいて管理します。
サポートされているリージョン
Application Gateway for Containers は現在、次のリージョンで提供されています。
- オーストラリア東部
- カナダ中部
- インド中部
- 米国中部
- 東アジア
- 米国東部
- 米国東部 2
- フランス中部
- ドイツ中西部
- 韓国中部
- 米国中北部
- 北ヨーロッパ
- ノルウェー東部
- 米国中南部
- 東南アジア
- スイス北部
- アラブ首長国連邦北部
- 英国南部
- 米国西部
- 西ヨーロッパ
Gateway API の実装
ALB コントローラーは、Gateway API のバージョン v1 を実装します。
Gateway API リソース | サポート | コメント |
---|---|---|
GatewayClass | はい | |
ゲートウェイ | はい | リスナーでの HTTP および HTTPS プロトコルのサポート。 リスナーで許可されるポートは 80 と 443 のみです。 |
HTTPRoute | はい | |
ReferenceGrant | はい | この API は、現在、バージョン v1alpha1 がサポートされています |
Ingress API の実装
ALB コントローラーは Ingress のサポートを実装します。
Ingress API リソース | サポート | コメント |
---|---|---|
イングレス | はい | リスナーでの HTTP および HTTPS プロトコルのサポート。 |
問題の報告およびフィードバックの送信
フィードバックについては、feedback.azure.com に新しいアイデアを投稿してください。問題については、Application Gateway for Containers リソースの Azure portal からサポート リクエストを上げてください。
料金と SLA
Application Gateway for Containers の価格情報については、「Application Gateway の価格」を参照してください。
Application Gateway for Containers の SLA については、Online Services のサービス レベル アグリーメント (SLA) に関する記事を参照してください。
新機能
Application Gateway for Containers の新機能については、「Azure の更新情報」を参照してください。