Higress Enterprise Edition ゲートウェイとして、Microservices Engine (MSE) Ingress ゲートウェイは NGINX Ingress ゲートウェイと互換性があります。オープンソースのセルフマネージド Ingress ゲートウェイのパフォーマンスと比較して、MSE Ingress ゲートウェイのパフォーマンスは 2 倍になります。MSE Ingress ゲートウェイは、セキュリティ成熟度に基づいて、中国情報通信技術研究院 (CAICT) によって業界をリードする Ingress ゲートウェイとして認定されています。MSE Ingress ゲートウェイは、低コスト、セキュリティ保護、高統合性、高可用性という利点を提供します。このトピックでは、MSE Ingress ゲートウェイを使用して Container Service for Kubernetes (ACK) クラスタおよび Container Compute Service (ACS) クラスタ内のサービスにアクセスする方法について説明します。
セキュリティ上の理由から、MSE Ingress ゲートウェイは kube-system 名前空間のサービスを公開できません。
前提条件
MSE Ingress Controller が ACK マネージドクラスタ、ACK Serverless クラスタ、または ACS クラスタにインストールされています。
クラスタ内の MSE Ingress Controller に権限が付与されています。クラスタが ACK マネージドクラスタまたは ACK Serverless クラスタの場合は、リンクをクリックして権限を付与します。クラスタが ACS クラスタの場合は、リンクをクリックして権限を付与します。
バージョン V1.18 以後のクラスタが作成されています。クラスタの作成方法の詳細については、ACK マネージドクラスタの作成、ACK Serverless クラスタの作成、またはACS クラスタの作成を参照してください。クラスタのバージョンが V1.18 より前の場合は、クラスタをアップグレードします。アップグレード操作の詳細については、ACKクラスターを手動でアップグレードするを参照してください。
ステップ 1: MSE Ingress Controller をインストールする
ACK マネージドクラスタまたは ACK Serverless クラスタ
ACK コンソールにログオンします。左側のナビゲーションペインで、クラスタをクリックします。
クラスタページで、管理するクラスタを見つけて、その名前をクリックします。左側のナビゲーションペインで、 を選択します。
ACS クラスタ
ACS コンソールにログオンします。左側のナビゲーションペインで、クラスタをクリックします。
クラスタページで、管理するクラスタを見つけて、その ID をクリックします。クラスタ詳細ページの左側のナビゲーションペインで、操作 > アドオン を選択します。
アドオンページで、検索ボックスに
mse
と入力し、MSE Ingress Controller リソースカードのインストールをクリックします。MSE Ingress Controller のインストールダイアログボックスで、パラメータを設定し、OK をクリックします。
ACK マネージドクラスタまたは ACK Serverless クラスタ
従量課金制のプロフェッショナルエディションのクラウドネイティブゲートウェイが自動的に作成されます。ゲートウェイには 2 つのノードがあり、各ノードには 2 つの CPU コアと 4 GB のメモリがあります。指定されたネットワークタイプに基づいて、Standard I (slb.s2.small) Classic Load Balancer (CLB) インスタンスも作成されます。ゲートウェイと CLB インスタンスが作成された後、上記のデフォルトの仕様を変更できます。
ACS クラスタ
サーバーレスクラウドネイティブゲートウェイが自動的に作成され、指定されたネットワークタイプに基づいて Network Load Balancer (NLB) インスタンスが作成されます。
MSE Ingress Controller をインストールするときに事前チェックに合格できませんでした。というエラーメッセージが表示された場合は、MSE Ingress Controller に権限を付与します。クラスタが ACK マネージドクラスタまたは ACK Serverless クラスタの場合は、リンクをクリックして権限を付与します。クラスタが ACS クラスタの場合は、リンクをクリックして権限を付与します。
MSE Ingress Controller がインストールされると、システムは
mse-ingress-pro/serverless-{clusterid}
という名前の MseIngressConfig リソースと mse という名前の IngressClass リソースを自動的に作成します。ACK コンソールに移動し、クラスタの名前をクリックできます。左側のナビゲーションペインで、ワークロード > デプロイメント > カスタムリソース を選択します。カスタムリソースページのリソースオブジェクトタブで、API グループセクションの検索ボックスに
mse
と入力し、検索アイコンをクリックしてMseIngressConfig
リソースの説明でゲートウェイの状態をクエリします。3 ~ 5 分後に状態がリスニング中に変わると、クラウドネイティブゲートウェイが作成され、実行中状態になります。ゲートウェイは、IngressClass がクラスタ内の mse である Ingress リソースを自動的にリッスンします。説明通常、MseIngressConfig のゲートウェイの状態は、保留中 > 実行中 > リスニング中の順序で変化します。状態の説明:
保留中:クラウドネイティブゲートウェイが作成されています。約 3 分待つ必要があります。
実行中:クラウドネイティブゲートウェイが作成され、実行されています。
リスニング中:クラウドネイティブゲートウェイが実行されており、クラスタ内の Ingress リソースをリッスンしています。
失敗:クラウドネイティブゲートウェイが無効な状態です。[状態] フィールドの [メッセージ] を表示して、原因を特定できます。
重要クラスタを作成すると、MSE Ingress Controller のインストール中に MseIngressConfig リソースが自動的に作成されます。MseIngressConfig リソースのライフサイクルは、MSE クラウドネイティブゲートウェイのライフサイクルに関連付けられています。MseIngressConfig リソースを削除すると、関連付けられている MSE クラウドネイティブゲートウェイインスタンスも削除されます。特に指定のない限り、MseIngressConfig リソースを削除しないでください。
MSE Ingress Controller をインストールする前に、mse という名前の IngressClass リソースがクラスタに既に存在する場合、MSE Ingress Controller のインストール中に MSE クラウドネイティブゲートウェイと関連付けられている MseIngressConfig リソースは自動的に作成されません。
MSE コンソールにログオンします。リージョンに
mse-ingress-pro/serverless-{clusterid}
という名前のクラウドネイティブゲートウェイが作成されていることを確認します。
ステップ 2: バックエンドサービスをデプロイする
ACK マネージドクラスタまたは ACK Serverless クラスタ
ACK コンソールにログオンします。左側のナビゲーションペインで、クラスタをクリックします。
クラスタページで、管理するクラスタを見つけて、その名前をクリックします。左側のペインで、 を選択します。
ACS クラスタ
ACS コンソールにログオンします。左側のナビゲーションペインで、クラスタをクリックします。
クラスタページで、管理するクラスタを見つけて、その ID をクリックします。クラスタ詳細ページの左側のナビゲーションペインで、
を選択します。
デプロイメントページで、YAML から作成をクリックします。次の YAML コードを使用して、httpbin という名前のデプロイメントと 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
ステップ 3: MSE Ingress ゲートウェイを設定する
ACK マネージドクラスタまたは ACK Serverless クラスタ
ACK コンソールにログオンします。左側のナビゲーションペインで、クラスタをクリックします。
クラスタページで、管理するクラスタを見つけて、その名前をクリックします。左側のペインで、 を選択します。
ACS クラスタ
ACS コンソールにログオンします。左側のナビゲーションペインで、クラスタをクリックします。
クラスタページで、管理するクラスタを見つけて、その ID をクリックします。クラスタ詳細ページの左側のナビゲーションペインで、ネットワーク > Ingress を選択します。
Ingress ページで、Ingress の作成をクリックします。
Ingress の作成ダイアログボックスで、ゲートウェイタイプでMSE Ingress を選択し、関連付けられたバックエンドサービスとアノテーションを設定して、OK をクリックします。
Ingress クラスを mse に設定します。ルートを設定するには、[ルール] ドロップダウンリストからプレフィックス (プレフィックスベースの照合) を選択し、パスフィールドに
/
と入力して、[サービス] ドロップダウンリストから httpbin を選択します。MSE コンソールにログオンします。クラウドネイティブゲートウェイにルートが設定されており、ルート名に httpbin が含まれていることを確認します。
ステップ 4: サービスにアクセスする
次のいずれかの方法でゲートウェイの IP アドレスを取得します。
ACK マネージドクラスタまたは ACK Serverless クラスタ
ACK コンソールにログオンします。左側のナビゲーションペインで、クラスタをクリックします。
クラスタページで、管理するクラスタを見つけて、その名前をクリックします。左側のペインで、 を選択します。
Ingress ページで、Ingress エンドポイントを表示します。
ACS クラスタ
ACS コンソールにログオンします。左側のナビゲーションペインで、クラスタをクリックします。
クラスタページで、管理するクラスタを見つけて、その ID をクリックします。クラスタ詳細ページの左側のナビゲーションペインで、ネットワーク > Ingress を選択します。
Ingress ページで、Ingress エンドポイントを表示します。
MSE コンソールにログオンします。左側のナビゲーションペインで、Cloud-Native Gateway > ゲートウェイリスト を選択します。[ゲートウェイ] ページで、ゲートウェイの名前をクリックします。クラウドネイティブゲートウェイの概要ページで、ゲートウェイに関連付けられているロードバランサインスタンスの IP アドレスを表示します。
Web ブラウザ、cmd、またはその他のコマンドラインツールを使用して、
ロードバランサインスタンスの IP アドレス/バージョン
の形式でパスにアクセスし、サービスをテストします。
参考文献
MSE Ingress ゲートウェイと MSE Ingress ゲートウェイの仕組みの詳細については、MSE Ingress ゲートウェイの概要を参照してください。