MSE Ingress は NGINX Ingress と互換性があり、オープンソースの自己管理型ゲートウェイの 2 倍のパフォーマンスを提供します。業界をリードするセキュリティについて、China Academy of Information and Communications Technology (CAICT) によって認定されています。MSE Ingress は、低コスト、高セキュリティ、緊密な統合、高可用性などの利点を提供します。このトピックでは、MSE Ingress を使用して Container Service for Kubernetes (ACK) および Container Compute Service (ACS) クラスターのサービスにアクセスする方法について説明します。
セキュリティ上の理由から、MSE Ingress は kube-system 名前空間のサービスを公開しません。
前提条件
MSE Ingress Controller は、ACK マネージドクラスター、Serverless Kubernetes クラスター、および ACS クラスターにインストールできます。
MSE Ingress Controller に権限を付与します。ACK マネージドクラスターまたは Serverless Kubernetes クラスターの場合は、権限付与リンク をクリックします。ACS クラスターの場合は、権限付与リンク をクリックします。
バージョン 1.18 以降のコンテナークラスターを作成します。詳細については、「ACK マネージドクラスターの作成」、「Serverless Kubernetes クラスターの作成」、または「ACS クラスターの作成」をご参照ください。
説明クラスターのバージョンが 1.18 より前の場合は、クラスターをスペックアップする必要があります。詳細については、「クラスターを手動でスペックアップする」をご参照ください。
ステップ 1: MSE Ingress Controller のインストール
ACK マネージドクラスターと Serverless Kubernetes クラスター
ACS コンソールにログオンします。左側のナビゲーションウィンドウで、[クラスター] をクリックします。
クラスター ページで、管理するクラスターを見つけてその名前をクリックします。左側のナビゲーションウィンドウで、[アドオン] をクリックします。
ACS
ACS コンソールにログインします。左側のナビゲーションウィンドウで、[クラスター] をクリックします。
[クラスター] ページで、対象のクラスターを見つけてその ID をクリックします。左側のナビゲーションウィンドウで、[操作] > [アドオン] を選択します。
[アドオン] ページで、検索ボックスに
mseと入力し、[MSE Ingress Controller] カードの [インストール] をクリックします。
[MSE Ingress Controller のインストール] ダイアログボックスで、パラメーターを設定し、[OK] をクリックします。
ACK マネージドクラスターと Serverless Kubernetes クラスター
MSE クラウドネイティブゲートウェイインスタンスを [新規作成] するか、[既存のインスタンスを使用] するかを選択できます。
新規作成:
従量課金制のプロフェッショナル版 MSE クラウドネイティブゲートウェイインスタンスが、2 つの 2 コア 4 GB ノードで自動的に作成されます。インスタンスの作成後に、これらのデフォルトの仕様を変更できます。

既存のインスタンスを使用: リストから従量課金制のプロフェッショナル版ゲートウェイインスタンスを選択します。インスタンスは、コンテナークラスターと同じ VPC にあり、他のクラスターに関連付けられていない必要があります。
ACS
MSE クラウドネイティブゲートウェイインスタンスを [作成] するか、[既存のインスタンスを使用] するかを選択できます。
新規作成:
従量課金制のプロフェッショナル版 MSE クラウドネイティブゲートウェイインスタンスが、2 つの 2 コア 4 GB ノードで自動的に作成されます。指定されたネットワークタイプに基づいて、Network Load Balancer (NLB) インスタンスも作成されます。

既存のインスタンスを使用:
リストから従量課金制のプロフェッショナル版ゲートウェイインスタンスを選択します。インスタンスは、コンテナークラスターと同じ VPC にあり、他のクラスターに関連付けられていない必要があります。
コンポーネントのインストール中に [事前チェックに失敗しました] エラーが発生した場合は、権限を付与する必要があります。ACK マネージドクラスターまたは Serverless Kubernetes クラスターの場合は、MSE Ingress Controller に権限を付与 をクリックします。ACS クラスターの場合は、MSE Ingress Controller に権限を付与 をクリックします。

コンポーネントがインストールされると、デフォルトで
mse-ingress-premium-{clusterid}という名前の MseIngressConfig リソースとmse-ingress-premium-{clusterid}という名前のゲートウェイインスタンスが作成されます。[ワークロード] > [カスタムリソース] で、[リソースオブジェクトブラウザ] タブを選択し、[API グループ] フィールドで
mseを検索します。MseIngressConfig の [アクション] 列の [YAML の編集] をクリックして、MseIngressConfigのステータスを確認します。3〜5 分待って、phaseステータスが [リスニング中] であることを確認します。このステータスは、クラウドネイティブゲートウェイが正常に作成され、実行中であり、mse の IngressClass を持つクラスター内の Ingress リソースを自動的にリッスンしていることを示します。
MseIngressConfig のステータスは、保留中 > 実行中 > リスニング中の順に変化します。各ステータスの説明は次のとおりです。
保留中: クラウドネイティブゲートウェイが作成中です。このプロセスには約 3 分かかります。
実行中: クラウドネイティブゲートウェイが作成され、実行中です。
リスニング中: クラウドネイティブゲートウェイは実行中で、クラスター内の Ingress リソースをリッスンしています。
失敗: クラウドネイティブゲートウェイが無効な状態です。[ステータス] セクションの [メッセージ] フィールドを表示して原因を特定できます。
重要新しいゲートウェイを作成すると、MSE Ingress Controller のインストールによってデフォルトの MseIngressConfig リソースが作成されます。このリソースのライフサイクルは、MSE クラウドネイティブゲートウェイインスタンスにバインドされます。MseIngressConfig リソースを削除すると、対応する MSE クラウドネイティブゲートウェイインスタンスも削除されます。必要でない限り、MseIngressConfig リソースを削除しないでください。
MSE Ingress Controller をインストールする前に `mse` という名前の IngressClass リソースがクラスターにすでに存在する場合、インストールでは MseIngressConfig リソースまたは MSE クラウドネイティブゲートウェイインスタンスは自動的に作成されません。
MSE ゲートウェイ管理コンソールにログインします。対応するリージョンに、
mse-ingress-premium-{clusterid}という名前のクラウドネイティブゲートウェイインスタンスが表示されます。
ステップ 2: バックエンドサービスのデプロイ
ACK マネージドクラスターと Serverless Kubernetes クラスター
ACK コンソールにログインします。左側のナビゲーションウィンドウで、[クラスター] をクリックします。
クラスター ページで、管理するクラスターを見つけてその名前をクリックします。左側のナビゲーションウィンドウで、 を選択します。
ACS
ACS コンソールにログインします。左側のナビゲーションウィンドウで、[クラスター] をクリックします。
[クラスター] ページで、管理するクラスターを見つけてその ID をクリックします。クラスター詳細ページの左側のナビゲーションウィンドウで、 を選択します。
[ステートレス] ページで、[YAML から作成] をクリックします。たとえば、次の YAML サンプルは、
httpbinという名前の Deployment とhttpbinという名前のサービスをデプロイします。apiVersion: apps/v1 kind: Deployment metadata: name: httpbin namespace: default spec: replicas: 1 selector: matchLabels: app: httpbin template: metadata: labels: app: httpbin version: v1 spec: containers: - image: registry.cn-hangzhou.aliyuncs.com/mse-ingress/go-httpbin args: - "--version=v1" imagePullPolicy: Always name: httpbin --- apiVersion: v1 kind: Service metadata: name: httpbin namespace: default spec: ports: - port: 8080 protocol: TCP selector: app: httpbinデプロイメントとサービスがデプロイされていることを確認します。
左側のナビゲーションウィンドウの で、
httpbinという名前の Deployment が作成され、そのPod 数が1/1になります。これは、デプロイメントが完了したことを示します。
左側のナビゲーションウィンドウで、 を選択します。
httpbinという名前のサービスが作成されます。これは、サービスデプロイが完了したことを示します。
ステップ 3: MSE Ingress の設定
ACK マネージドクラスターと Serverless Kubernetes クラスター
ACK コンソールにログインします。左側のナビゲーションウィンドウで、[クラスター] をクリックします。
クラスター ページで、目的のクラスターを見つけてその名前をクリックします。左側のペインで、 を選択します。
ACS
ACS コンソールにログインします。左側のナビゲーションウィンドウで、[クラスター] をクリックします。
[クラスター] ページで、管理するクラスターを見つけてその ID をクリックします。クラスター詳細ページの左側のナビゲーションウィンドウで、[ネットワーク] > [Ingress] を選択します。
[ルート] ページで、[ルートの作成] をクリックします。
[ルートの作成] ダイアログボックスで、[ゲートウェイタイプ] に [MSE Ingress] を選択し、バックエンドサービスとアノテーションを設定してから、[OK] をクリックします。
この例では、[Ingress クラス] は mse で、ルーティングルールは [プレフィックス一致] で、[パス] は
/で、リクエストはhttpbinサービスに転送されます。
MSE ゲートウェイ管理コンソールにログインします。対応するクラウドネイティブゲートウェイインスタンスに、名前に `httpbin` を含むルートが表示されます。

ステップ 4: サービスへのアクセス
Ingress エンドポイントから NLB ドメイン名を取得するか、ゲートウェイからパブリック IP アドレスを取得します。
方法 1: クラスターの [ルート] ページで Ingress エンドポイントを表示します。
ACK マネージドクラスターと Serverless Kubernetes クラスター
ACK コンソールにログインします。左側のナビゲーションウィンドウで、[クラスター] をクリックします。
クラスター ページで、目的のクラスターを見つけてその名前をクリックします。左側のペインで、 を選択します。
[ルート] ページで、Ingress のエンドポイントを表示します。

ACS
ACS コンソールにログインします。左側のナビゲーションウィンドウで、[クラスター] をクリックします。
[クラスター] ページで、管理するクラスターを見つけてその ID をクリックします。クラスター詳細ページの左側のナビゲーションウィンドウで、[ネットワーク] > [Ingress] を選択します。
[ルート] ページで、Ingress エンドポイントを表示します。

方法 2: MSE ゲートウェイ管理コンソールでゲートウェイのパブリック IP アドレスを表示します。
MSE ゲートウェイ管理コンソールにログインします。左側のナビゲーションウィンドウで、Cloud-Native Gateway > ゲートウェイリスト を選択し、対象のゲートウェイの名前をクリックします。MSE クラウドネイティブゲートウェイインスタンスの [概要] ページの [アクセス方法] タブでパブリック IP アドレスを表示します。

ブラウザまたはコマンドラインツールを使用して
<NLB ドメイン名>/versionまたは<ゲートウェイのパブリック IP アドレス>/versionにアクセスしてサービスをテストします。たとえば、ブラウザにnlb-b4ewsj2******.cn-hangzhou.nlb.aliyuncsslb.com/versionと入力してサービスにアクセスします。
参考資料
MSE Ingress の詳細については、「MSE Ingress の管理」をご参照ください。