Container Service for Kubernetes (ACK) およびACK Serverlessに加えて、Application Load Balancer (ALB) Ingressをエンタープライズ分散アプリケーションサービス (EDAS) 、Serverless App Engine (SAE) 、および自己管理Kubernetesクラスターと一緒にクラウドで使用して、ビジネス要件を満たすことができます。 このトピックでは、ALB Ingressの基本機能と高度な機能について説明し、ALB Ingressを他のサービスと一緒に使用する方法について説明します。
基本機能
AlbConfigは、ALB IngressコントローラーがALBインスタンスとリスナーを構成するために使用するACKのカスタムリソース定義 (CRD) オブジェクトです。 次の表では、ACKおよびACKサーバーレスクラスターにALB Ingressコントローラーをインストールおよびアンインストールし、AlbConfigsを作成および変更し、Simple Log Serviceを有効にする方法について説明します。
項目 | 機能 | 説明 | ACKの参照 | ACK Serverlessの参照 |
ALB Ingressコントローラ | ALB Ingressコントローラーの管理 | ACKは、管理されたALB Ingressコントローラを提供する。 クラスターの作成時にALB Ingressコントローラーをインストールするか、クラスターの作成後に [コンポーネント] ページでコントローラーをインストールできます。 | ||
インスタンス管理 | AlbConfigの作成 | AlbConfigは、ALB IngressコントローラーがALBインスタンスとリスナーを構成するために使用するCRDオブジェクトです。 AlbConfigは、単一のALBインスタンスを設定するために使用されます。 複数のALBインスタンスを設定する場合は、複数のAlbConfigsを作成する必要があります。 | ||
AlbConfigをIngressに関連付ける | IngressClassを使用して、AlbConfigをIngressに関連付けることができます。 これを行うには、まずIngressClassを作成する必要があります。 | |||
AlbConfigの変更 | AlbConfigの名前やvSwitchなど、AlbConfigの設定を変更できます。 新しい設定は、設定を保存した直後に有効になります。 | |||
Simple Log Serviceを有効にしてアクセスログを収集する | ALB Ingressのアクセスログを収集する場合は、AlbConfigの 説明
| |||
既存のALBインスタンスの使用 | 既存のALBインスタンスを使用する場合は、AlbConfigの作成時にALBインスタンスのIDを指定します。 | |||
複数のALBインスタンスを使用する | 複数のALBインスタンスを使用する場合は、Ingressの | |||
ALBインスタンスの削除 | AlbConfigは、ALBインスタンスを設定するために使用されます。 したがって、対応するAlbConfigを削除することで、ALBインスタンスを削除できます。AlbConfigを削除する前に、AlbConfigに関連付けられているすべてのIngressを削除する必要があります。 | |||
リスナー管理 | HTTPS接続の証明書の指定 | ALBインスタンスの証明書を指定するには、対応するAlbConfigの | ||
Transport Layer Security (TLS) セキュリティポリシーの指定 | AlbConfigを使用してHTTPSリスナーを設定する場合、TLSセキュリティポリシーを指定できます。 カスタムおよびデフォルトのTLSセキュリティポリシーがサポートされています。 詳細については、「TLSセキュリティポリシー」をご参照ください。 |
高度な機能
Ingressは、レイヤー7の負荷分散を実装し、ACKクラスター内のサービスへの外部アクセスを管理するために使用できるAPIオブジェクトです。 次の表では、ALB Ingressを使用して、ドメイン名とURLパスに基づいてリクエストをバックエンドサーバーグループに転送し、リクエストをHTTPからHTTPSにリダイレクトし、カナリアリリースを実行する方法を説明します。
機能 | 説明 | ACKの参照 | ACK Serverlessの参照 |
ドメイン名に基づいてリクエストを転送する | ドメイン名の有無にかかわらずIngressを作成し、Ingressを使用してリクエストを転送できます。 | ||
URLパスに基づいてリクエストを転送する | ALB Ingressは、URLパスに基づいてリクエストを転送できます。 | ||
カスタム転送ルール | ALB Ingressでは、カスタム転送ルールを設定できます。 転送ルールは、一致条件とアクションで構成されます。 ALB Ingressは次の操作をサポートします。
重要
| ||
ヘルスチェックの設定 | ALB Ingressに注釈を追加して、ヘルスチェックを設定できます。 ヘルスチェックパラメータには、パス、プロトコル、メソッド、httpcode、タイムアウト、間隔、およびしきい値が含まれます。 | ||
自動証明書検出の設定 | ALB Ingressコントローラーは、自動証明書検出をサポートします。 まず、[certificate Management Serviceコンソール] で証明書を作成する必要があります。 次に、IngressのTLS設定で証明書のドメイン名を指定します。 このようにして、ALB Ingressコントローラーは、IngressのTLS設定に基づいて証明書を自動的に検出して一致させることができます。 | ||
HTTPリクエストからHTTPSリクエストへのリダイレクトの設定 |
| ||
HTTPSまたはgRPCプロトコルの設定 | ALB IngressはHTTPSまたはgRPCプロトコルをサポートしています。 HTTPSまたはgRPCを設定するには、 説明 バックエンドプロトコルは変更できません。 プロトコルを変更する必要がある場合は、Ingressを削除して再構築します。 | ||
書き換えルールの設定 | ALB Ingressは書き換えルールをサポートしています。 書き換えルールを設定するには、 説明
| ||
カスタムリスニングポートの設定 | ALB Ingressを使用すると、複数のポートを同時に公開するようにカスタムリスニングポートを設定できます。 この方法を使用して、サービスのポート80とポート443の両方をインターネットに公開できます。 | ||
転送ルールの優先度の設定 | Ingressの設定に注釈を追加して、Ingressの転送ルールの優先順位を設定できます。 説明 リスナー内の各転送ルールの優先度は一意です。 | ||
アノテーションを使用してカナリアリリースを実行する | ALBを使用すると、リクエストヘッダー、Cookie、および重みに基づいてカナリアリリースを設定し、複雑なトラフィックルーティングを処理できます。 注釈を追加してカナリアリリースを設定できます。 カナリアリリース機能を有効にするには、 | ||
セッション永続性の設定 |
| ||
バックエンドサーバーグループの負荷分散アルゴリズムの指定 |
| ||
クロスオリジンリソース共有 (CORS) の設定 | ALB Ingressでは、アノテーションを使用してCORSを設定できます。 | ||
永続TCP接続の設定 | 従来のロードバランサーがバックエンドサーバーにリクエストを転送するたびに、短期間の接続が作成されます。 このアクションにより、サーバーに不要な負荷がかかり、パフォーマンスのボトルネックの問題が発生します。 ALBは、ネットワーク接続を確立するために消費されるリソースの量を削減し、転送パフォーマンスを向上させる永続的なTCP接続機能を提供します。 永続的なTCP接続機能を有効にするには、alb ingressに | ||
QPSスロットリングの設定 | ALBは、転送ルールに基づくQPSスロットリングをサポートしています。 QPSを1〜100000の範囲に制限できます。 | ||
バックエンドスロースタート | alb ingressのスロースタートモードを有効にするには、 説明 持続時間が長いほど、トラフィックの増加は遅くなります。 | ||
接続ドレイン | alb ingressの接続ドレインを有効にするには、 | ||
|
|
他のサービスとの統合
Alibaba Cloudサービスとの統合
Alibaba Cloud サービス | 機能 | 説明 | 関連ドキュメント |
WAF | ALB IngressのWebアプリケーションファイアウォール (WAF) の有効化 | Webアプリケーションファイアウォール (WAF) は、Webサイトとアプリケーションを保護するオールインワンサービスです。 WAFを使用して、データ侵害、HTTPフラッド攻撃、webシェル、およびwebページの改ざんを防止できます。 WAFは仮想パッチも提供します。 ALB Ingressに対してWAFを有効にすると、ネットワークトラフィックはALBリスナーにルーティングされる前にWAFによってフィルタリングされます。 | |
EDAS | アプリケーションのALB Ingressの作成 | EDASはALB Ingressesをサポートしています。 ALB Ingressは、トラフィック管理を強化し、NGINX Ingressと互換性があります。 これにより、ALB Ingressは複雑なルーティングを処理し、証明書を自動的に検出できます。 | |
SAE | Ingressゲートウェイに基づくエンドツーエンドのカナリアリリースの設定 | Ingressゲートウェイを使用して、SAEアプリケーションのエンドツーエンドのカナリアリリースを実行できます。 | |
ASM | ALB Ingressを設定してサービスメッシュ (ASM) をALBと統合する | ASMをALBと統合するようにALB Ingressを設定できます。 | |
HPA | ALB Ingressを設定して、水平ポッドオートスケーラー (HPA) をALBと統合する | HPAは、Kubernetesクラスターのポッドを自動的にスケールアウトするために使用されます。 ALB Ingressを使用してHPAをALBと統合し、1秒あたりのクエリ (QPS) に基づく自動スケーリングを有効にできます。 | |
Knative | ALBを介してサービスにアクセスするKnativeがインストールされているACKおよびACKサーバーレスクラスターを有効にする | KnativeはKubernetesベースのサーバーレスフレームワークです。 Knativeを使用して、ALBサービスを公開し、ヘッダーとCookieに基づいてカナリアリリースを実行できます。 | |
ACKワン | ALB Ingressを設定してALBマルチクラスタゲートウェイを作成する | Distributed Cloud Container Platform for Kubernetes (ACK One) は、Alibaba cloudが開発したエンタープライズクラスのクラウドネイティブコンテナプラットフォームで、ハイブリッドクラウド、マルチクラスター、分散コンピューティング、ディザスタリカバリシナリオでのコンテナ管理要件を満たします。 ACK Oneによって提供されるALBマルチクラスタゲートウェイは、ALB Ingressのマルチクラスタモードです。 これらを使用して、アクティブなゾーン冗長性、アクティブな地理冗長性、クラスター間の負荷分散、および指定されたクラスターのみへのヘッダーベースのトラフィック分散を実装できます。 |
オープンソースサービスとの統合
オープンソースサービス | 機能 | 説明 | 関連ドキュメント |
クラウド内の自己管理型Kubernetesクラスター | ALB Ingressを設定して自己管理KubernetesクラスターでALBを使用する | ECSインスタンスを使用してKubernetesクラスターを構築する場合、ALB Ingressを設定してトラフィックをルーティングできます。 これにより、クラスターはALBサービスを自動的に検出し、負荷分散を有効にできます。 |