Microservices Engine (MSE) Ingress ゲートウェイは、NGINX Ingress と完全な互換性を持つ Higress Enterprise Edition ゲートウェイです。オープンソースの自己管理型 Ingress ゲートウェイと比較して、MSE Ingress ゲートウェイのパフォーマンスは 2 倍になります。MSE Ingress ゲートウェイは、セキュリティ成熟度に基づいて中国情報通信研究院 (CAICT) によって認定されています。低コスト、セキュリティ保護、高い統合性、高可用性という利点があります。このトピックでは、MSE Ingress Controller のインストール、バックエンドサービスのデプロイ、および外部トラフィックをそこにルーティングする手順を説明します。
MSE Ingress ゲートウェイは、kube-system 名前空間のサービスを公開できません。
前提条件
作業を開始する前に、以下が準備されていることを確認してください。
ACK マネージドクラスター、ACK サーバーレスクラスター、または Kubernetes v1.18 以降を実行している ACS クラスター。作成するには、「ACK マネージドクラスターの作成」、「ACK サーバーレスクラスターの作成」、または「ACS クラスターの作成」をご参照ください。クラスターのバージョンが v1.18 より前の場合、続行する前に「スペックアップ」してください。
MSE Ingress Controller に付与された Resource Access Management (RAM) 権限:
考慮事項:
MSE Ingress Controller をインストールする前に、
mseという名前の IngressClass リソースがクラスターにすでに存在する場合、インストール中にゲートウェイと関連する MseIngressConfig リソースは自動的に作成されません。MseIngressConfig リソースを削除すると、関連する MSE クラウドネイティブゲートウェイインスタンスも削除されます。指示がない限り、MseIngressConfig リソースを削除しないでください。
ステップ 1: MSE Ingress Controller のインストール
ACK コンソールにログインします。左側のナビゲーションウィンドウで、[クラスター] をクリックします。
[クラスター] ページで、対象のクラスターを見つけてその名前をクリックします。左側のナビゲーションウィンドウで、[アドオン] をクリックします。
[アドオン] ページで、検索ボックスに
mseと入力し、[MSE Ingress Controller] リソースカードの [インストール] をクリックします。
[MSE Ingress Controller のインストール] ダイアログボックスで、パラメーターを設定し、[OK] をクリックします。新しいクラウドネイティブゲートウェイを作成するか、既存のものを選択します。インストール中に事前チェックが失敗した場合は、MSE Ingress Controller に MSE へのアクセスを許可します。
インストール後、システムは MseIngressConfig リソースとクラウドネイティブゲートウェイを自動的に作成します。どちらも
mse-ingress-premium-{clusterid}という名前です。ゲートウェイのステータスを確認するには、クラスターの詳細ページに移動し、[ワークロード] > [Deployment] > [カスタムリソース] を選択します。[リソースオブジェクト] タブの [API グループ] セクションでmseを検索して、MseIngressConfig リソースを見つけます。ゲートウェイのステータスは次の順序で進行します:先に進む前に、phaseフィールドが Listening に変わるまで 3〜5 分待ちます。コマンドラインから確認するには、次を実行します:ステータス 説明 Pending クラウドネイティブゲートウェイが作成中です。約 3 分お待ちください。 Running クラウドネイティブゲートウェイが作成され、実行中です。 Listening クラウドネイティブゲートウェイは実行中で、クラスター内の Ingress リソースをリッスンしています。 Failed クラウドネイティブゲートウェイは無効な状態です。原因については、 StatusのMessageフィールドを確認してください。kubectl get mseingressconfig -APHASE列にListeningと表示されたら、ゲートウェイの準備は完了です。
MSE コンソールにログインして、ご利用のリージョンに
mse-ingress-premium-{clusterid}という名前のクラウドネイティブゲートウェイが作成されていることを確認します。
ステップ 2: バックエンドサービスのデプロイ
ACK コンソールにログインします。左側のナビゲーションウィンドウで、[クラスター] をクリックします。
[クラスター] ページで、対象のクラスターを見つけてその名前をクリックします。左側のナビゲーションウィンドウで、[ワークロード] > [Deployment] を選択します。
[デプロイメント] ページで、[YAML から作成] をクリックし、次のマニフェストを適用して
httpbinという名前の Deployment とサービスをデプロイします: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: httpbinDeployment が実行中であることを確認するには、次を実行します:
kubectl get deployment httpbin -n default次のような出力が期待されます:
NAME READY UP-TO-DATE AVAILABLE AGE httpbin 1/1 1 1 30s
ステップ 3: MSE Ingress ルートの設定
ACK コンソールにログインします。左側のナビゲーションウィンドウで、[クラスター] をクリックします。
[クラスター] ページで、目的のクラスターを見つけ、その名前をクリックします。左側のナビゲーションウィンドウで、[ネットワーク] > [Ingress] を選択します。
[Ingresses] ページで、[Ingress の作成] をクリックします。
[Ingress の作成] ダイアログボックスで、[ゲートウェイタイプ] を [MSE Ingress] に設定し、ルートを設定します。[OK] をクリックします。
[Ingress クラス] を
mseに設定します。[ルール] で、ドロップダウンリストから [プレフィックス (プレフィックスベースの一致)] を選択します。
[パス] を
/に設定します。「サービス」を
httpbinに設定します。

MSE コンソールにログインして、
httpbinを含むルートがクラウドネイティブゲートウェイに設定されていることを確認します。コマンドラインから確認するには、次を実行します:kubectl get ingress -n default次のような出力が期待されます:
NAME CLASS HOSTS ADDRESS PORTS AGE httpbin mse * nlb-b4ewsj2******.cn-hangzhou.nlb.aliyuncsslb.com 80 30s
ステップ 4: サービスへのアクセス
ACK コンソールにログインします。左側のナビゲーションウィンドウで、[クラスター] をクリックします。
[クラスター] ページで、対象のクラスターを見つけてその名前をクリックします。左側のナビゲーションウィンドウで、[ネットワーク] > [Ingress] を選択します。
[Ingress] ページで、[アドレス] 列にある Ingress エンドポイントを見つけます。

ゲートウェイの NLB ドメイン名またはパブリック IP アドレスを使用してサービスにアクセスします。例えば、次を実行します:
curl http://nlb-b4ewsj2******.cn-hangzhou.nlb.aliyuncsslb.com/version正常な応答が返されれば、MSE Ingress ゲートウェイ経由でサービスにアクセスできることが確認できます。

次のステップ
高度なルーティング:Ingress リソースにアノテーションを設定して、トラフィック分割、カナリアリリース、リクエスト書き換えを有効にします。
TLS 終端:MSE クラウドネイティブゲートウェイに証明書を設定して、HTTPS サポートを追加します。
モニタリング:MSE コンソールでゲートウェイのメトリクスとアクセスログを表示して、トラフィックをモニターし、問題を診断します。
クリーンアップ:テストリソースを削除するには、ACK コンソールから
httpbinの Deployment、Service、および Ingress を削除するか、kubectl delete deployment,service,ingress httpbin -n defaultを実行します。