MSE Ingress は NGINX Ingress と完全な互換性があり、オープンソースの自己管理型 Ingress ゲートウェイの 2 倍のパフォーマンスを提供します。MSE Ingress ゲートウェイは、CAICT によって業界をリードするセキュリティ成熟度が認定されており、低コスト、セキュリティ、高度な統合、高可用性を提供します。このトピックでは、MSE Ingress を使用してコンテナサービスと Container Compute Service にアクセスする方法について説明します。
セキュリティ上の理由から、MSE Ingress ゲートウェイは kube-system 名前空間のサービスを公開できません。
前提条件
以下を確認してください:
-
Kubernetes V1.18 以降を実行している Container Service for Kubernetes (ACK) マネージドクラスター、ACK サーバーレスクラスター、または ACS クラスターが必要です。ACK managed cluster の作成、ACK Serverless cluster の作成、または ACS cluster の作成。以前のバージョンをご利用の場合は、アップグレードしてください。
-
MSE Ingress コントローラーに付与された RAM 権限:
考慮事項:
-
MSE Ingress Controller をインストールする前に、クラスターに mse という名前の IngressClass リソースがすでに存在する場合、インストール中にゲートウェイと MseIngressConfig リソースは自動的に作成されません。
mseがクラスターにすでに存在する場合、ゲートウェイと MseIngressConfig リソースは自動的に作成されません。 -
新しいインストールモードでは、MSE Ingress コントローラーをインストールすると MseIngressConfig リソースが作成され、そのライフサイクルは MSE クラウドネイティブゲートウェイインスタンスに関連付けられます。MseIngressConfig リソースを削除すると、関連付けられた MSE クラウドネイティブゲートウェイがカスケード削除されます。指示がない限り、MseIngressConfig リソースは削除しないでください。
ステップ1:MSE Ingress コントローラーのインストール
-
ACK コンソール にログインします。左側メニューで、[Clusters] をクリックします。
-
[Clusters] ページで、対象のクラスターを見つけてその名前をクリックします。左側メニューで、[アドオン] をクリックします。
-
[アドオン] ページで
mseを検索し、[MSE Ingress コントローラー] カードの [インストール] をクリックします。
-
[Install MSE Ingress コントローラー] ダイアログボックスで、クラウドネイティブゲートウェイを作成または選択し、[OK] をクリックします。事前チェックが失敗した場合は、MSE Ingress コントローラーに MSE へのアクセスを承認 してください。
-
インストール後、MseIngressConfig リソースとクラウドネイティブゲートウェイが自動的に作成され、どちらも
mse-ingress-premium-{clusterid}という名前が付けられます。 ゲートウェイのステータスを確認するには、クラスター詳細ページに移動し、[ワークロード] > [デプロイメント] > [カスタムリソース] を選択します。 [リソースオブジェクト] タブの [API グループ] セクションでmseを検索します。 次に進む前に、phaseフィールドが Listening になるまで 3~5 分待ちます。 コマンドラインから確認します:ステータス 説明 Pending ゲートウェイは作成中です。約 3 分お待ちください。 Running ゲートウェイが作成され、実行中です。 Listening ゲートウェイは実行中で、Ingress リソースをリッスンしています。 Failed MessageStatusゲートウェイが無効な状態です。原因については、 の フィールドを確認してください。kubectl get mseingressconfig -APHASE列にListeningと表示されると、ゲートウェイは準備完了です。
-
[MSE コンソール]にログインして、ご利用のリージョンに
mse-ingress-premium-{clusterid}という名前のクラウドネイティブゲートウェイが存在することを確認します。
ステップ2:バックエンドサービスのデプロイ
-
ACK コンソール にログインします。左側メニューで、[Clusters] をクリックします。
-
[Clusters] ページで、対象のクラスターを見つけてその名前をクリックします。左側メニューで、[ワークロード] > [Deployment] を選択します。
-
[デプロイメント] ページで、[YAML から作成] をクリックし、次のマニフェストを適用して
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: httpbinDeployment が実行中であることを確認します:
kubectl get deployment httpbin -n default期待される出力:
NAME READY UP-TO-DATE AVAILABLE AGE httpbin 1/1 1 1 30s
ステップ3:MSE Ingress ルートの設定
-
ACK コンソール にログインします。左側メニューで、[Clusters] をクリックします。
-
[Clusters] ページで、対象のクラスターを見つけてその名前をクリックします。左側メニューで、[ネットワーク] > [Ingresses] を選択します。
-
[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 コンソール にログインします。左側メニューで、[Clusters] をクリックします。
-
[Clusters] ページで、対象のクラスターを見つけてその名前をクリックします。左側メニューで、[ネットワーク] > [Ingresses] を選択します。
-
[Ingresses] ページで、[アドレス] 列の Ingress エンドポイントを見つけます。[アドレス] 列には、自動的に割り当てられた NLB ロードバランサーのアドレスが表示されます。これは MSE Ingress のアクセスエンドポイントです。

-
NLB ドメイン名またはゲートウェイのパブリック IP を使用してサービスにアクセスします。例:
curl http://nlb-b4ewsj2******.cn-hangzhou.nlb.aliyuncsslb.com/version正常な応答は、サービスにアクセスできることを示します。

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