Ingressは、Kubernetesクラスター内のサービスへの外部アクセスを管理するためのレイヤー7負荷分散を提供するAPIオブジェクトです。 クラウドネイティブアプリケーションがデプロイされるシナリオのサポートを強化するために、Alibaba cloudは、MSEクラウドネイティブゲートウェイとContainer Service for Kubernetes (ACK) の深い統合と最適化に基づいて開発されたMicroservices Engine (MSE) Ingressゲートウェイを提供しています。 MSE Ingressゲートウェイは、クラスターのingressトラフィックを効率的に管理するのに役立ちます。 このトピックでは、MSE Ingressゲートウェイの基本的な概念、機能、および使用上の注意事項について説明します。 このトピックでは、MSE Ingressゲートウェイの動作とMSE Ingress Controllerのインストール方法についても説明します。
基本概念
Kubernetesクラスターでは、Ingressはクラスター内のサービスを公開するアクセスポイントとして機能します。 Ingressは、クラスター内のサービス向けのトラフィックのほとんどを分散します。 Ingressは、Kubernetesクラスター内のサービスへの外部アクセスを管理するKubernetesリソースです。 Ingressのルーティングルールを設定して、Kubernetesクラスター内のさまざまなサービスのバックエンドポッドにトラフィックをルーティングできます。
Kubernetes Ingressリソースでは、HTTPトラフィックをルーティングするためのルールのみを設定できます。 負荷分散アルゴリズムやセッションアフィニティなどの高度な機能は設定できません。 高度な機能には、NGINX IngressゲートウェイまたはMSE Ingressゲートウェイのサポートが必要です。
MSE Ingressゲートウェイは、MSEクラウドネイティブゲートウェイに基づいて開発されており、ingressトラフィックを管理するためのより強力な方法を提供します。 MSE IngressゲートウェイはNGINX Ingressゲートウェイと互換性があり、NGINX Ingressゲートウェイで定義された50を超えるアノテーションと互換性があります。 MSE Ingressゲートウェイは、NGINX Ingressゲートウェイの90% を超えるシナリオに適しています。 MSE Ingressゲートウェイは、複数のサービスバージョンのカナリアリリースを同時にサポートし、柔軟なサービスガバナンス機能と包括的なセキュリティ保護を提供します。 MSE Ingressゲートウェイは、多数のクラウドネイティブ分散アプリケーションが使用されるシナリオで、トラフィックガバナンスの要件を満たすことができます。
特徴
MSE Ingressゲートウェイの機能の詳細については、次のトピックを参照してください。
使用上の注意
Container Service for Kubernetes (ACK) 管理クラスター、ACKサーバーレスクラスター、Container Compute Service (ACS) クラスターなどのKubernetesサービスは、MSE Ingressゲートウェイを使用して、外部トラフィックをKubernetesクラスター内のサービスにルーティングできます。 このようにして、レイヤ7負荷分散が実装される。 KubernetesクラスターにMSE Ingress Controllerをデプロイする必要があります。 MSE Ingress Controllerは、MseIngressConfig CustomResourceDefinitions (CRD) で定義されたリソースをリッスンし、MSEクラウドネイティブゲートウェイのライフサイクル、グローバルパラメータ設定、およびIngressリソースのリスニングアイテムを動的に管理するために使用されます。 MSEクラウドネイティブゲートウェイは、Kubernetesクラスター内のIngressリソースをリッスンし、リッスンしたIngressリソースを必要なトラフィックガバナンス設定に変換するために使用されます。 これにより、クラスタサービスは外部に公開されます。 詳細については、「MSE Ingressゲートウェイを使用したコンテナークラスター内のサービスへのアクセス」をご参照ください。
Kubernetes Ingressリソースは、HTTPトラフィック管理のみをサポートしています。 高度な機能は、注釈に基づいて実装されます。 MSE Ingressゲートウェイは、NGINX Ingressゲートウェイで定義されたアノテーションと互換性があり、トラフィックガバナンスとセキュリティ保護を強化するための追加のアノテーションを提供します。 詳細については、「MSE Ingressの高度な使用法」をご参照ください。
MSE Ingressゲートウェイの仕組み
コンポーネント
MSE Ingressコントローラ:
MSE Ingress Controllerはネットワークデータプレーンではありませんが、MSEクラウドネイティブゲートウェイとその構成を管理する制御プレーンです。 MSE Ingress Controllerはサービス要求を処理しません。 MSE Ingress Controllerは、サービス要求を処理するMSEクラウドネイティブゲートウェイを管理するためのトラフィックバイパスとして機能します。
MSE Ingress ControllerをACK管理クラスター、ACKサーバーレスクラスター、またはACSクラスターにインストールし、このコンポーネントが提供するMseIngressConfig CRDを使用して、アノテーションに基づいてクラウドネイティブゲートウェイを管理し、ゲートウェイのIngressリソースリスニングアイテムを設定する必要があります。
MSE Ingress Controllerのインストール方法の詳細については、「MSE Ingress Controllerコンポーネントの管理」をご参照ください。
MSEクラウドネイティブゲートウェイ:
MSEクラウドネイティブゲートウェイは、設定したMseIngressConfig CRDに基づいてMSE Ingress Controllerによって作成されます。 MSEクラウドネイティブゲートウェイは、制御プレーンとデータプレーンで構成されます。
コントロールプレーン: クラスター内のIngress、Ingressクラス、サービスなどのリソースを一覧表示します。 リソース設定は内部で解析され、ゲートウェイのデータプレーンにリアルタイムで送信されます。
データプレーン: トラフィックガバナンスを実装します。 データプレーンは、制御プレーンから送信されたガバナンス規則に基づいて外部要求を処理し、要求を宛先バックエンドサービスにルーティングします。
制御ポリシー機能の動作
MSE Ingress Controllerは、クラスター内のMseIngressConfig CRDで定義されているリソースをリッスンし、リソースに対応するクラウドネイティブゲートウェイのライフサイクルと、ゲートウェイとクラスター間の関連付けをリアルタイムで動的に維持します。
クラウドネイティブゲートウェイの制御プレーンは、関連付けられたクラスターのAPIサーバーを使用してIngressリソースの変更を取得し、ゲートウェイのルーティングルールを動的に更新します。 クラウドネイティブゲートウェイがリクエストを受信した後、ゲートウェイはリクエストをIngressルーティングルールと照合し、照合されたルーティングルールに基づいてバックエンドサービスに対応するポッドにリクエストをルーティングします。
以下のコンテンツでは、Kubernetesクラスター内のサービス、Ingress、Ingressクラス、MseIngressConfigs、およびMSE Ingress Controller間の関係について説明します。
サービス: 実際のバックエンドサービスの抽象化。 1つのサービスは、複数の同一のバックエンドサービスを表すことができる。
Ingress: リバースプロキシルールのセット。 Ingressは、HTTPリクエストまたはHTTPSリクエストがルーティングされるサービスを指定します。 たとえば、Ingressは、リクエスト内のホスト名とURLに基づいて、リクエストをさまざまなサービスにルーティングします。
Ingressクラス: Ingressプロセッサの説明。 Ingressクラスは、KubernetesクラスターでIngressプロセッサの実装を宣言するために使用されます。 Ingressクラスに関連付けられたIngressリソースは、Ingressプロセッサによって解析されます。 解析されたIngressリソースの説明で指定されているトラフィック管理ルールを実装するには、MseIngressConfigをIngressクラスのParameterフィールドに関連付ける必要があります。
MseIngressConfig: MSE Ingress Controllerによって提供されるCRD。 MseIngressConfig CRDは、クラウドネイティブゲートウェイに関する基本情報を提供します。
MSE Ingress Controller: MSEクラウドネイティブゲートウェイとその構成を管理する制御プレーン。 MSE Ingress Controllerはネットワークデータプレーンではありません。 MSE Ingress Controllerは、クラスター内のMseIngressConfig CRDで定義されたIngressリソースをリッスンし、解析されたIngressリソースの説明で指定されたトラフィック管理ルールを実装するためにMSEクラウドネイティブゲートウェイを調整するために使用されます。
次の図は、MSE Ingress Controllerの動作を示しています。
MSE Ingressコントローラのインストール
MSE Ingress Controllerは、ACK管理クラスター、ACKサーバーレスクラスター、またはACSクラスターにインストールできます。
方法1: ACK管理クラスター、ACKサーバーレスクラスター、またはACSクラスターを作成するときにMSE Ingress Controllerコンポーネントをインストールする
ACKマネージドクラスターまたはACKサーバーレスクラスターを作成するときは、[コンポーネント設定] の [Ingress] を選択します。 クラスターの作成方法の詳細については、「ACK管理クラスターの作成」および「ACKサーバーレスクラスターの作成」をご参照ください。
ACSクラスターを作成するときは、[コンポーネント設定] セクションの [Ingress] のMSE Ingressを選択します。 ACSクラスターの作成方法の詳細については、「ACSクラスターの作成」をご参照ください。
方法2: Add-onsページにMSE Ingress Controllerコンポーネントをインストールする
ACK管理クラスターまたはACKサーバーレスクラスター
ACKコンソールにログインします。 左側のナビゲーションウィンドウで、[クラスター] をクリックします。
[クラスター] ページで、管理するクラスターの名前をクリックします。 左側のナビゲーションウィンドウで、 を選択します。
ACSクラスター
ACSコンソールにログインします。 左側のナビゲーションウィンドウで、[クラスター] をクリックします。
[クラスター] ページで、管理するクラスターを見つけ、そのIDをクリックします。 左側のナビゲーションウィンドウで、[操作] > [アドオン] を選択します。
[アドオン] ページで、検索ボックスに
[mse]
と入力し、検索アイコンをクリックします。 次に、MSE Ingress Controllerコンポーネントカードで [インストール] をクリックします。
方法3: クラスタのIngressページにMSE Ingress Controllerコンポーネントをインストールする
ACK管理クラスターまたはACKサーバーレスクラスター
ACKコンソールにログインします。 左側のナビゲーションウィンドウで、[クラスター] をクリックします。
[クラスター] ページで、管理するクラスターの名前をクリックします。 左側のウィンドウで、 を選択します。
[Ingress] ページで、右上隅の [Ingressの作成] をクリックします。 [Ingressの作成] パネルで、[ゲートウェイタイプ] の [MSE Ingress] を選択します。 次に、プロンプトに従ってコンポーネントをインストールします。
ACSクラスター
ACSコンソールにログインします。 左側のナビゲーションウィンドウで、[クラスター] をクリックします。
[クラスター] ページで、管理するクラスターを見つけ、そのIDをクリックします。 左側のウィンドウで、
を選択します。[Ingress] ページで、右上隅の [Ingressの作成] をクリックします。 [Ingressの作成] パネルで、[ゲートウェイタイプ] の [MSE Ingress] を選択します。 次に、プロンプトに従ってコンポーネントをインストールします。
リリースノート
8月2024
バージョン | リリース日 | 説明 | 影響 |
1.1.11 | 2024-08-16 | ゲートウェイは、リージョンと仮想プライベートクラウド (VPC) にまたがって作成できます。 OpenTelemetryのマネージドサービスがサポートされています。 | ワークロードへの影響なし |
7月2024
バージョン | リリース日 | 説明 | 影響 |
1.1.10 | 2024-07-18 | サーバーレスゲートウェイのIngressリスニングが最適化されています。 | ワークロードへの影響なし |
6月2024
バージョン | リリース日 | 説明 | 影響 |
1.1.9 | 2024-06-28 | Alibaba Cloud Container Compute Service (ACS) クラスターとクロスゾーンデプロイがサポートされています。 サーバーレスゲートウェイインスタンスを作成できます。 | ワークロードへの影響なし |
11月2023
バージョン | リリース日 | 説明 | 影響 |
1.1.7 | 2023-11-13 | MSEクラウドネイティブゲートウェイを作成および再利用するためのグローバルパラメーターは、MSE Ingress Controllerコンポーネントのインストールに合わせて調整されます。 | ワークロードへの影響なし |
1.1.6 | 2023-11-07 | MSEクラウドネイティブゲートウェイは、MSE Ingress Controllerコンポーネントのインストール時に作成または再利用できます。 | ワークロードへの影響なし |
8月2023
バージョン | リリース日 | 説明 | 影響 |
1.1.5 | 2023-08-28 | MSE Ingress Controllerコンポーネントの承認ロジックが最適化されています。 | ワークロードへの影響なし |
1.1.4 | 2023-08-16 |
| ワークロードへの影響なし |
6月2023
バージョン | リリース日 | 説明 | 影響 |
1.1.3 | 2023-06-02 |
| ワークロードへの影響なし |
March 2023
バージョン | リリース日 | 説明 | 影響 |
1.1.2 | 2023-03-31 | MSE Ingress Controllerコンポーネントの権限が制限されています。 | ワークロードへの影響なし |
12月2022
バージョン | リリース日 | 説明 | 影響 |
1.1.0 | 2022-12-23 | コンポーネント管理機能は、MSE Ingress Controllerコンポーネントに提供されます。 | ワークロードへの影響なし |