次の方法で共有


Azure Kubernetes Service (AKS) のイングレス

AKS のイングレスは、クラスター内のサービスへの外部 HTTP のようなトラフィック アクセスを管理する Kubernetes リソースです。 AKS イングレスでは、負荷分散、SSL 終端、名前ベースの仮想ホスティングなどのサービスが提供される場合があります。 Kubernetes イングレスの詳細については、Kubernetes イングレスのドキュメントを参照してください。

イングレス コントローラー

アプリケーション トラフィックを管理する場合、イングレス コントローラーはレイヤー 7 で動作することで高度な機能を提供します。 受信 URL に基づいて HTTP トラフィックをさまざまなアプリケーションにルーティングできるため、よりインテリジェントで柔軟なトラフィック分散ルールが可能になります。 たとえば、イングレス コントローラーは、URL パスに応じてトラフィックをさまざまなマイクロサービスに送信し、サービスの効率と編成を強化できます。

一方、LoadBalancer 型のサービスは、作成時に基になる Azure ロード バランサー リソースを設定します。 このロード バランサーはレイヤー 4 で動作し、指定されたポートでサービス内のポッドにトラフィックを分散します。 ただし、レイヤー 4 のサービスは実際のアプリケーションを認識しないため、この種の複雑なルーティング規則を実装できません。

これら 2 つのアプローチの違いを理解すると、トラフィック管理のニーズに適したツールを選ぶのに役立ちます。

AKS クラスターでのイングレス トラフィック フローを示す図

イングレス オプションの比較

次の表に、さまざまなイングレス コントローラー オプション間での機能の違いを挙げています。

機能 Application Routing アドオン Application Gateway for Containers Azure サービス メッシュ/Istio ベースのサービス メッシュ
イングレス/ゲートウェイ コントローラー NGINX イングレス コントローラー Azure Application Gateway for Containers Istio イングレス ゲートウェイ
API Ingress API Ingress API と Gateway API Gateway API
ホスティング クラスター内 Azure ホステッド クラスター内
スケーリング 自動スケール 自動スケール 自動スケール
負荷分散 内部/外部 外部 内部/外部
SSL ターミネーション クラスター内 有り: オフロードで E2E SSL クラスター内
mTLS 該当なし バックエンドに対して有り 該当なし
静的 IP アドレス 該当なし FQDN 該当なし
Azure Key Vault に保存済みの SSL 証明書 はい はい 該当なし
DNS ゾーン管理のための Azure DNS 統合 はい はい 該当なし

次の表に、各イングレス コントローラーを使用する場合のさまざまなシナリオを挙げています。

イングレス オプション いつ使用するか
マネージド NGINX - Application Routing アドオン • クラスター内にホストされている、カスタマイズ可能でスケーラブルな NGINX イングレス コントローラー。
• 基本的な負荷分散およびルーティング機能。
• 内部/外部ロード バランサー構成。
• 静的 IP アドレス構成。
• 証明書管理用の Azure Key Vault との統合。
• パブリック/プライベート DNS 管理のための Azure DNS ゾーン との統合。
• イングレス API のサポート。
Application Gateway for Containers • Azure でホストされるイングレス ゲートウェイ。
• コントローラーで管理する柔軟なデプロイ戦略、または独自の Application Gateway for Containers の使用。
• 高度なトラフィック管理機能 (自動再試行、可用性ゾーンの回復性、バックエンド ターゲットに対する相互認証 (mTLS)、トラフィック分割/重み付けラウンド ロビン、自動スケーリングなど)。
• 証明書管理用の Azure Key Vault との統合。
• パブリック/プライベート DNS 管理のための Azure DNS ゾーン との統合。
• Ingress API と Gateway API のサポート。
Istio イングレス ゲートウェイ • Envoy に基づいて、サービス メッシュに Istio を使用する場合。
• 高度なトラフィック管理機能 (レート制限やサーキット ブレークなど)。
• mTLS のサポート
• Gateway API のサポート。

イングレス リソースを作成する

アプリケーション ルーティング アドオンは、AKS でイングレス コントローラーを構成するために推奨される方法です。 アプリケーション ルーティング アドオンは、 Azure Kubernetes Service (AKS) 向けのフル マネージド型のイングレス コントローラーで、次の機能を提供します。

  • Kubernetes NGINX イングレス コントローラーに基づくマネージド NGINX イングレス コントローラーの簡単な構成。

  • パブリック ゾーンとプライベート ゾーンの管理のための Azure DNS との統合。

  • Azure Key Vault に格納されている証明書での SSL 終端。

アプリケーション ルーティング アドオンについて詳しくは、「アプリケーション ルーティング アドオンでのマネージド NGINX イングレス」をご覧ください。

クライアント ソース IP の保持

クライアント ソース IP を AKS クラスター内のコンテナーへの要求上で保持するようにイングレス コントローラーを構成します。 イングレス コントローラーによりクライアントの要求が AKS クラスター内のコンテナーにルーティングされるときに、その要求の元のソース IP は、ターゲット コンテナーでは利用できません。 クライアント ソース IP の保持を有効にすると、クライアントに対するソース IP は、X-Forwarded-For 下にある要求ヘッダー内で利用できます。

クライアント ソース IP の保持機能をイングレス コントローラー上で使用している場合は、TLS パススルーを使用できません。 クライアント ソース IP の保持と TLS パススルーは、LoadBalancer 型など、他のサービスによって使用できます。

クライアント ソース IP の保持について詳しくは、「AKS の LoadBalancer Services でのクライアント ソース IP 保持のしくみ」をご覧ください。