Container Service for Kubernetes (ACK) と ACK Serverless に加えて、ALB イングレスは Enterprise Distributed Application Service (EDAS)、Serverless App Engine (SAE)、セルフマネージド Kubernetes クラスターと連携し、多様なビジネス要件に対応します。このトピックでは、ALB イングレスの基本機能と高度な機能、および他の Alibaba Cloud サービスと組み合わせて使用する方法について説明します。
基本的な機能
AlbConfig は、Application Load Balancer (ALB) インスタンスとリスナーを構成するために ALB Ingress コントローラーが提供するカスタムリソース定義 (CRD) です。次の表では、ACK および ACK Serverless クラスターにおいて、ALB Ingress コントローラーのインストールとアンインストール、AlbConfig の作成と変更、および Simple Log Service の有効化を行う方法を説明します。
|
オブジェクト |
機能 |
説明 |
ACK ドキュメント |
ACK Serverless ドキュメント |
|
ALB Ingress コントローラー |
ALB Ingress コントローラーコンポーネントの管理 |
ACK は、ALB に基づくマネージド型の ALB Ingress コントローラーを提供します。 ALB Ingress コントローラーは、クラスター作成時または [アドオン] ページでインストールできます。 |
||
|
インスタンス管理 |
AlbConfig の作成 |
AlbConfig は、ALB インスタンスとそのリスナーを構成するために、ALB Ingress コントローラーが提供するカスタムリソース定義 (CRD) です。 各 AlbConfig は 1 つの ALB インスタンスに対応するため、複数の ALB インスタンスを使用するには、複数の AlbConfig を作成する必要があります。 |
||
|
Ingress の関連付け |
AlbConfig は、標準の Kubernetes IngressClass リソースを使用して Ingress に関連付けられます。まず IngressClass を作成し、その後 AlbConfig に関連付ける必要があります。 |
|||
|
AlbConfig の変更 |
名前や vSwitch 設定などの AlbConfig プロパティを変更できます。 変更内容は保存後すぐに有効になります。 |
|||
|
Simple Log Service によるアクセスログの有効化 |
ALB Ingress にアクセスログを収集させるには、AlbConfig で 説明
|
|||
|
既存の ALB インスタンスの再利用 |
既存の ALB インスタンスを再利用するには、AlbConfig の作成時にそのインスタンス ID を指定します。 |
|||
|
複数の ALB インスタンスの使用 |
複数の ALB インスタンスを使用する必要がある場合は、 |
|||
|
ALB インスタンスの削除 |
各 ALB インスタンスは 1 つの AlbConfig に対応します。ALB インスタンスを削除するには、関連付けられた AlbConfig を削除します。AlbConfig を削除する前に、それに関連付けられているすべての Ingress を先に削除する必要があります。 |
|||
|
リスナー管理 |
HTTPS 証明書の指定 |
AlbConfig を使用して Application Load Balancer (ALB) 証明書を指定できます。 |
||
|
TLS セキュリティポリシーのサポート |
AlbConfig で HTTPS リスナーを構成する際に、カスタムまたはシステムデフォルトの TLS セキュリティポリシーを指定できます。詳細については、「TLS セキュリティポリシー」をご参照ください。 |
高度な機能
ACK クラスターでは、ALB Ingress がクラスター内の Service への外部アクセスを管理し、レイヤー 7 の負荷分散機能を提供します。次の表では、ALB Ingress を使用して、異なるドメイン名または URL パスからのリクエストを異なるバックエンドサーバーグループに転送する方法、HTTP リクエストを HTTPS にリダイレクトする方法、およびカナリアリリースを実装する方法を説明します。
|
機能 |
説明 |
ACK ドキュメント |
ACK Serverless ドキュメント |
|
ドメイン名に基づくリクエスト転送 |
シンプルな Ingress を作成して、指定したドメイン名または空のドメイン名に基づいてリクエストを転送します。 |
||
|
URL パスに基づくリクエスト転送 |
ALB イングレスは、URL パスに基づくリクエストの転送をサポートしています。 |
||
|
カスタム転送ルール |
ALB Ingress は、一致条件とアクションで構成されるカスタム転送ルールをサポートします。ALB Ingress を使用すると、次のことが可能です。
重要
|
||
|
ヘルスチェックの設定 |
アノテーションを使用してヘルスチェックを設定し、サービスの可用性を確保できます。 |
||
|
証明書の自動検出の設定 |
最初にCertificate Management Service コンソールで証明書を作成する必要があります。その後、ALB Ingress コントローラーが証明書を自動的に検出し、Ingress の TLS 設定で指定されたドメイン名に一致する証明書を自動的に関連付けます。 |
||
|
HTTP から HTTPS へのリダイレクト |
ALB イングレスを使用して HTTP リクエストを HTTPS ポート 443 にリダイレクトするには、次のアノテーションを使用します。 |
||
|
HTTPS および gRPC プロトコルのサポート |
ALB はバックエンドプロトコルとして HTTPS と gRPC をサポートします。ALB Ingress では、アノテーションを 説明
バックエンドプロトコルは変更できません。プロトコルを変更する必要がある場合は、Ingress を削除して再作成してください。 |
||
|
リライトのサポート |
説明
|
||
|
カスタムリスナーポートの設定 |
ALB Ingress はカスタムリスナーポートをサポートします。これにより、ポート 80 とポート 443 の両方で同時にサービスを公開できます。 |
||
|
転送ルール優先度の設定 |
アノテーションを使用して、ALB Ingress の転送ルールの優先度を定義できます。 説明
ルールの優先度は、同一リスナー内で一意である必要があります。 |
||
|
アノテーションによるカナリアリリースの実装 |
ALB Ingress は高度なルーティング機能を提供し、Header、Cookie、および重みに基づくカナリアリリースをサポートします。アノテーションを使用してカナリアリリースを実装できます。この機能を有効にするには、 |
||
|
アノテーションによるセッション維持の実装 |
ALB Ingress は、 |
||
|
サーバーグループの負荷分散アルゴリズムの指定 |
ALB Ingress では、Ingress アノテーション |
||
|
オリジン間リソース共有 (CORS) の設定 |
アノテーションを使用して、オリジン間リソース共有 (CORS) を設定できます。 |
||
|
バックエンド永続接続 |
ALB は、接続レイヤーでのリソース消費を抑え、処理性能を向上させるために、バックエンドの Keep-Alive 接続をサポートします。ALB Ingress では、 |
||
|
QPS スロットリングのサポート |
ALB は転送ルールの QPS スロットリングをサポートします。QPS スロットリング値は 1〜100,000 の範囲で設定できます。ALB Ingress の場合は、 |
||
|
スロースタート |
ALB Ingress では、 説明
継続時間が長いほど、トラフィックの増加が遅くなります。 |
||
|
接続のドレイニング |
ALB Ingress は接続のドレイニングをサポートします。 |
||
|
Kubernetes Pod と ECS インスタンスをバックエンドサーバーとしてマウント |
ALB Ingress は、 |
ALB Ingress を使用して、ハイブリッドマウント、リージョン間マウント、およびオンプレミス IDC マウントを実装する |
ALB Ingress を使用して、ハイブリッドマウント、リージョン間マウント、およびオンプレミス IDC マウントを実装する |
|
Cloud Enterprise Network (CEN) や Transit Router などの製品を組み合わせて、リージョン間およびオンプレミス IDC リソースをマウント |
ALB を Cloud Enterprise Network (CEN) や Transit Router などの製品と組み合わせて使用することで、別リージョンの VPC 内のサーバー、またはオンプレミスデータセンター内のサーバーにリクエストを転送できます。 |
Ingress アノテーション内の JSON 値には、標準的な英語の句読点を使用する必要があります。中国語と英語の句読点を混在させると、
invalid characterの reconcile エラーが発生します。英語入力モードを使用してこれらの値を編集してください。
ALB Ingress との連携
Alibaba Cloud との連携
|
Alibaba Cloud 製品 |
機能 |
説明 |
ドキュメント |
|
WAF |
ALB Ingress の WAF 保護を有効化 |
Web Application Firewall (WAF) は、一般的な Web 攻撃からアプリケーションを保護します。ALB Ingress で WAF 保護が有効になっている場合、ALB インスタンスへのすべてのトラフィックが保護されます。 |
|
|
EDAS |
アプリケーションルート (ALB Ingress) の作成 |
Enterprise Distributed Application Service (EDAS) は、アプリケーションルーティングに ALB Ingress を使用します。Alibaba Cloud の Application Load Balancer (ALB) をベースにした ALB Ingress は、高度なトラフィック管理を提供し、Nginx Ingress との互換性があり、複雑なビジネスルーティングと証明書の自動検出を処理します。 |
|
|
SAE |
Ingress ゲートウェイに基づくエンドツーエンドのカナリアリリースの実装 |
ALB Ingress ゲートウェイを使用すると、ビジネスコードを一切変更することなく、SAE アプリケーションのエンドツーエンドのトラフィック制御を実装できます。 |
|
|
ASM |
Ingress を使用した ALB との連携 |
Ingress を使用して、Alibaba Cloud Service Mesh (ASM) と ALB を連携させることができます。これにより、ALB ユーザーは ASM の機能を活用できます。 |
|
|
HPA |
Ingress を使用した ALB との連携 |
Ingress を使用して Horizontal Pod Autoscaler (HPA) と ALB を連携させることで、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 のエンタープライズレベルのクラウドネイティブプラットフォームです。ALB Ingress のマルチクラスターモードである ACK One ALB マルチクラスターゲートウェイを使用すると、アクティブ/アクティブゾーンディザスタリカバリ、ジオディザスタリカバリ、マルチクラスター負荷分散、および特定のクラスターへのヘッダーベースのルーティングを実装できます。 |
オープンソースとの連携
|
オープンソース製品 |
機能 |
説明 |
ドキュメント |
|
クラウド上のセルフマネージド Kubernetes |
Ingress を使用したセルフマネージド Kubernetes クラスターでの ALB の使用 |
Elastic Compute Service (ECS) リソース上に構築された Kubernetes クラスターでは、Ingress を使用して ALB ルーティングをオーケストレーションし、自動サービスディスカバリーとクラスター内負荷分散を実現できます。 |