Container Service for Kubernetes (ACK) やサーバーレス Kubernetes (ACK Serverless) などの Kubernetes プロダクトに加えて、ALB Ingress は Enterprise Distributed Application Service (EDAS)、Serverless App Engine (SAE)、および自己管理型 Kubernetes クラスターでも使用でき、多様なビジネスニーズに対応します。このトピックでは、ALB Ingress の基本機能と高度な機能について説明し、他のプロダクトと連携して使用する方法を解説します。
基本機能
AlbConfig は、ALB Ingress Controller が提供するカスタムリソース定義 (CRD) であり、Application Load Balancer (ALB) インスタンスとリスナーを設定するために使用されます。次の表では、ACK プロダクトでの ALB Ingress Controller のインストールとアンインストール方法、AlbConfig の作成と変更方法、および Simple Log Service の有効化方法について説明します。
オブジェクト | 機能 | 説明 | ACK のドキュメントリンク | ACK Serverless のドキュメントリンク |
ALB Ingress Controller | ALB Ingress Controller コンポーネントの管理 | Container Service は、ALB に基づくマネージド型の ALB Ingress Controller を提供します。 ALB Ingress Controller は、クラスター作成時またはコンポーネント管理ページからインストールできます。 | ||
インスタンス管理 | AlbConfig の作成 | AlbConfig は、ALB Ingress Controller が提供する CRD で、ALB インスタンスとリスナーを設定します。 1 つの AlbConfig は 1 つの ALB インスタンスに対応します。複数の ALB インスタンスを使用するには、複数の AlbConfig を作成します。 | ||
Ingress の関連付け | AlbConfig は、標準の Kubernetes IngressClass リソースを使用して Ingress に関連付けられます。まず IngressClass を作成し、次に AlbConfig を関連付けます。 | |||
AlbConfig の変更 | 名前や vSwitch 設定など、AlbConfig のプロパティを変更します。 新しい設定は保存後に自動的に有効になります。 | |||
アクセスログの有効化 | ALB Ingress のアクセスログを収集するには、AlbConfig で 説明
| |||
既存の ALB インスタンスの再利用 | 既存の ALB インスタンスを再利用するには、AlbConfig の作成時にインスタンス ID を指定します。 | |||
複数の ALB インスタンスの使用 | 複数の ALB インスタンスを使用するには、Ingress の | |||
ALB インスタンスの削除 | 1 つの ALB インスタンスは 1 つの AlbConfig に対応します。ALB インスタンスを削除するには、その AlbConfig を削除します。AlbConfig を削除する前に、関連するすべての Ingress を削除する必要があります。 | |||
リスナー管理 | HTTPS 証明書の指定 | AlbConfig の | ||
TLS セキュリティポリシーのサポート | AlbConfig で HTTPS リスナーを設定する際に、TLS セキュリティポリシーを指定できます。TLS セキュリティポリシーには、カスタムポリシーとデフォルトポリシーがあります。詳細については、「TLS セキュリティポリシー」をご参照ください。 |
高度な機能
ACK クラスターでは、ALB Ingress はクラスターサービス (Service) を外部に公開する API オブジェクトを管理することで、レイヤー 7 の負荷分散を提供します。次の表では、ALB Ingress を使用して、異なるドメイン名や URL パスからのリクエストを異なるバックエンドサーバーグループに転送する方法、HTTP アクセスを HTTPS にリダイレクトする方法、およびカナリアリリースを実行する方法について説明します。
機能 | 説明 | ACK のドキュメントリンク | ACK Serverless のドキュメントリンク |
ドメイン名に基づくリクエストの転送 | 指定されたドメイン名または空のドメイン名に基づいてリクエストを転送する単純な Ingress を作成します。 | ||
URL パスに基づくリクエストの転送 | ALB Ingress は URL に基づくリクエストの転送をサポートしています。 | ||
カスタム転送ルール | ALB Ingress はカスタム転送ルールをサポートしています。転送ルールには条件と操作が含まれます。ALB Ingress を使用すると、次のことができます:
重要
| ||
ヘルスチェックの設定 | ALB Ingress は、サービスの可用性を確保するために、アノテーションを設定してヘルスチェックを構成することをサポートしています。 | ||
HTTPS 証明書の自動検出の設定 | ALB Ingress Controller は証明書を自動的に検出できます。Certificate Management Service コンソールで証明書を作成すると、ALB Ingress Controller は Ingress の TLS 設定内のドメイン名に基づいて自動的に証明書を検出して照合します。 | ||
HTTP から HTTPS へのリダイレクト設定 | ALB Ingress は、次のアノテーションを使用して、HTTP リクエストを HTTPS ポート 443 にリダイレクトします。 | ||
HTTPS および gRPC プロトコルのサポート | ALB はバックエンドプロトコルとして HTTPS と gRPC をサポートしています。これらのプロトコルを ALB Ingress で使用するには、 説明 バックエンドプロトコルは変更できません。プロトコルを変更するには、Ingress を削除して再作成する必要があります。 | ||
再書き込みのサポート | ALB Ingress は URL の再書き込みをサポートしています。再書き込みを設定するには、 説明
| ||
カスタムリッスンポートの設定 | ALB Ingress はカスタムリッスンポートをサポートしています。これにより、1 つのサービスに対してポート 80 やポート 443 など、複数のポートを公開できます。 | ||
転送ルールの優先度の設定 | ALB Ingress では、アノテーションを設定することで転送ルールの優先度を定義できます。 説明 同じリスナー内のルールの優先度は一意でなければなりません。 | ||
アノテーションを使用したカナリアリリースの実装 | ALB Ingress は、ヘッダー、Cookie、および重みに基づくカナリアリリースを含む高度なルーティング機能を提供します。カナリアリリースを有効にして設定するには、 | ||
アノテーションを使用したセッション維持の実装 | ALB Ingress は、 | ||
バックエンドサーバーグループの負荷分散アルゴリズムの指定 | ALB Ingress は、 | ||
クロスドメイン設定 | ALB Ingress は、アノテーションを設定することでクロスドメイン設定をサポートしています。 | ||
バックエンドの持続的接続 | ALB は、接続レイヤーでのリソース消費を削減し、処理性能を向上させるために、バックエンドの持続的接続をサポートしています。この機能は、 | ||
QPS スロットリングのサポート | ALB は、転送ルールのクエリ/秒 (QPS) スロットリングをサポートしており、制限は 1 から 100,000 の範囲です。ALB Ingress の QPS スロットリングを設定するには、 | ||
バックエンドのスロースタート | ALB Ingress はバックエンドのスロースタートをサポートしており、 説明 期間が長いほど、トラフィックの増加は遅くなります。 | ||
接続ドレイン | ALB Ingress は接続ドレインをサポートしており、 | ||
Kubernetes と ECS のハイブリッドアタッチメントのサポート | ALB Ingress では、 | ||
Cloud Enterprise Network や Transit Router などのプロダクトの組み合わせによるクロスリージョンおよびオンプレミスデータセンターリソースのアタッチメントのサポート | ALB を Cloud Enterprise Network (CEN) や Transit Router などのプロダクトと組み合わせることで、ALB が他のリージョンの VPC 内のサーバーやオンプレミスのデータセンターにリクエストを転送できるようになります。 |
ALB Ingress のエコシステム統合
クラウドプロダクトとの統合
クラウドプロダクト | 機能 | 説明 | ドキュメントリンク |
WAF | ALB Ingress の WAF 保護の有効化 | Web Application Firewall (WAF) は、Web サイトやアプリケーションにワンストップのセキュリティ保護を提供します。データ漏洩や悪意のある CC 攻撃を防ぎ、トロイの木馬のアップロードをブロックし、Web サイトの改ざんを防止し、仮想パッチを提供します。ALB Ingress の WAF 保護を有効にすると、ALB インスタンスのリッスンポートへのトラフィックが保護されます。 | |
EDAS | アプリケーション Ingress (ALB Ingress) の作成 | EDAS は ALB Ingress アプリケーションルーティングをサポートしています。ALB Ingress は Alibaba Cloud の ALB をベースにしており、Ingress トラフィックを管理するための効果的な方法を提供します。Nginx Ingress と互換性があり、複雑なビジネスルーティングや証明書の自動検出をサポートしています。 | |
SAE | Ingress ゲートウェイに基づくエンドツーエンドカナリアリリースの実装 | ALB Ingress ゲートウェイを使用して、ビジネスコードを変更することなく、SAE アプリケーションのエンドツーエンドのトラフィックシェーピングを実装できます。 | |
ASM | Ingress を使用した ALB との統合をサポート | Alibaba Cloud Service Mesh (ASM) は、Ingress を使用して ALB と統合できます。これにより、ALB ユーザーは ASM インスタンス内のアプリケーションのトラフィックを管理できます。 | |
HPA | Ingress を使用した ALB との統合をサポート | Horizontal Pod Autoscaler (HPA) は、水平ポッド自動スケーリングのための Kubernetes の機能です。HPA を ALB Ingress と統合して、QPS データに基づいてアプリケーションの自動スケーリングを有効にできます。 | |
Knative | Knative コンポーネントがインストールされている ACK または ACK Serverless クラスターで ALB を介したサービスへのアクセスをサポート | Knative は Kubernetes ベースのサーバーレスフレームワークです。Knative を介して ALB サービス検出を設定し、ヘッダーと Cookie に基づくカナリアリリースを実装できます。 | |
ACK One | Ingress を使用した ALB マルチクラスターゲートウェイの作成をサポート | Distributed Cloud Container Platform for Kubernetes (ACK One) は、ハイブリッドクラウド、マルチクラスター、分散コンピューティング、ディザスタリカバリのシナリオをサポートする Alibaba Cloud のエンタープライズレベルのクラウドネイティブプラットフォームです。ACK One の ALB マルチクラスターゲートウェイは、ALB Ingress のマルチクラスターモードです。これにより、アクティブなゾーン冗長性、アクティブな地理的冗長性によるディザスタリカバリ、マルチクラスターのトラフィック負荷分散、および指定されたクラスターへのヘッダーベースのトラフィックルーティングを実装できます。 |
オープンソースプロダクトとの統合
オープンソースプロダクト | 機能 | 説明 | ドキュメントリンク |
クラウド上の自己管理型 Kubernetes | Ingress を使用した自己管理型 Kubernetes クラスターでの ALB の使用をサポート | 購入した ECS コンピューティングリソース上に構築された Kubernetes クラスターでは、Ingress を使用して ALB ルーティングを編成できます。これにより、クラスター内での自動的なサービス検出と負荷分散が実現します。 |