すべてのプロダクト
Search
ドキュメントセンター

Microservices Engine:ACKクラスターでMSEクラウドネイティブゲートウェイを出口ゲートウェイとして使用する

最終更新日:Jan 08, 2025

出口ゲートウェイは、内部ネットワークと外部ネットワークを接続するエッジゲートウェイです。 出口ゲートウェイは、ネットワークトラフィックを制御し、リモートアクセスと通信を可能にするために使用されます。 Microservices Engine(MSE)クラウドネイティブゲートウェイは、出口ゲートウェイとして機能し、Container Service for Kubernetes(ACK)クラスターに安定した、効率的で安全な出口サービスを提供して、出口トラフィック管理とセキュリティ制御のビジネス要件を満たします。

MSEクラウドネイティブゲートウェイの利点

  • MSEクラウドネイティブゲートウェイは、マネージドゲートウェイサービスを提供し、スタンドアロンモードでデプロイされます。 MSEクラウドネイティブゲートウェイはACKクラスターの影響を受けず、高い安定性を提供します。

  • MSEクラウドネイティブゲートウェイは、IPアドレスのブラックリストとホワイトリスト、スロットリング、負荷分散、Transport Layer Security(TLS)オフロード、トラフィックミラーリング、ヘッダー制御など、さまざまなレイヤー 7 HTTPプロトコルガバナンス機能を提供します。

  • ACKクラスター内のすべてのPodに対してインターネットアクセスを有効にする必要はありません。 MSEクラウドネイティブゲートウェイに対してのみインターネットアクセスを有効にして、より高いアクセス制御機能を提供する必要があります。 MSEクラウドネイティブゲートウェイへのインターネットアクセスを有効にする場合は、ゲートウェイが接続されているvSwitchに対してSource Network Address Translation(SNAT)を有効にする必要があります。

デプロイメントアーキテクチャ

image.png

手順

ステップ 1:MSE Ingress Controllerをインストールする

既存のACKクラスターまたは ACK Serverlessクラスター にMSE Ingress Controllerをインストールします。 クラスターの作成時にMSE Ingress Controllerをインストールすることもできます。 詳細については、「MSE Ingress Controllerコンポーネントの管理」の「MSE Ingress Controllerコンポーネントのインストール」セクションをご参照ください。

ステップ 2:MseIngressConfigリソースを作成してMSEクラウドネイティブゲートウェイを作成するか、作成したMseIngressConfigリソースを既存のMSEクラウドネイティブゲートウェイに関連付ける

MseIngressConfigは、MSE Ingress Controllerによって提供されるCustomResourceDefinition(CRD)です。 MseIngressConfigリソースを作成し、作成したMseIngressConfigリソースを使用してMSEクラウドネイティブゲートウェイを作成できます。 また、作成したMseIngressConfigリソースを既存のMSEクラウドネイティブゲートウェイに関連付けることもできます。 詳細については、「MseIngressConfigの構成」の「クラウドネイティブゲートウェイの作成」セクションをご参照ください。

ゲートウェイを作成するときに、内部向けのClassic Load Balancer(CLB)インスタンスのみを作成する必要があります。 設定例:

apiVersion: mse.alibabacloud.com/v1alpha1
kind: MseIngressConfig
metadata:
  name: egress-gateway
spec:
  name: egress-gateway
  common:
    instance:
      spec: 2c4g
      replicas: 3
    network:
      vSwitches:
        - "vsw-xxxx" # MSEクラウドネイティブゲートウェイに関連付けられているvSwitchのID。 ゲートウェイを作成するときにvSwitch IDを設定する必要があります。
      privateSLBSpec: slb.s2.small
説明

ACKクラスターまたは ACK Serverlessクラスター を作成するときに [VPCのSNATを設定する] を選択しない場合、作成されたクラスターはインターネットにアクセスできません。 インターネットアクセスをサポートするには、MSEクラウドネイティブゲートウェイのSNATを設定する必要があります。

インターネットアクセスをサポートするには、ネットワークアドレス変換(NAT)ゲートウェイのSNATエントリを使用する必要があります。 NATゲートウェイの作成方法の詳細については、「インターネットNATゲートウェイのSNAT機能を使用してインターネットにアクセスする」をご参照ください。 ステップ 3:SNATエントリを作成する を実行してSNATエントリを作成します。 この操作では、[vswitchを指定] を選択し、MseIngressConfigリソースのvSwitch IDをエントリに追加します。

ステップ 3:ExternalNameタイプのKubernetesサービスを作成し、サービスを外部サービスに関連付ける

ExternalNameタイプのKubernetesサービスを作成し、サービス名を外部ドメインネームシステム(DNS)の名前にマップします。 たとえば、KubernetesクラスターからAlibaba Cloud MSE製品ページにアクセスする場合、次の設定を使用できます。

apiVersion: v1
kind: Service
metadata:
  name: aliyun-svc-external
  namespace: default
spec:
  externalName: www.aliyun.com
  ports:
    - name: port1
      port: 80
      protocol: TCP
      targetPort: 80
    - name: port2
      port: 443
      protocol: TCP
      targetPort: 443
  type: ExternalName

ステップ 4:ExternalNameタイプのサービスのルーティングルールを設定する

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: mse-ingress
  namespace: default
spec:
  ingressClassName: mse
  rules:
    - host: www.aliyun.com  # ドメイン名。
      http:
        paths:
          - backend:
              service:
                name: aliyun-svc-external  # ExternalNameタイプのサービスの名前。
                port:
                  number: 80
            path: /product/aliware/mse  # MSEアクセス パス。
            pathType: Prefix

上記の設定をmse-ingress.yamlという名前のファイルとして保存した後、kubectl apply -f mse-ingress.yamlコマンドを実行して設定を適用します。 次に、kubectl get ingress mse-ingress -o yamlコマンドを実行してIngressリソースに関する情報を表示し、MSEクラウドネイティブゲートウェイのCLB IPアドレスを取得します。 設定例:

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  annotations:
    nginx.ingress.kubernetes.io/backend-protocol: HTTPS  # ゲートウェイからバックエンドのAlibaba Cloudサービスへのサービスルーティングに使用されるHTTPSプロトコル。
  name: mse-ingress
  namespace: default
spec:
  ingressClassName: mse
  rules:
    - host: www.aliyun.com
      http:
        paths:
          - backend:
              service:
                name: aliyun-svc-external
                port:
                  number: 443
            path: /product/aliware/mse  
            pathType: Prefix
status:
  loadBalancer:
    ingress:
      - ip: xx.xx.xx.xx  # MSEクラウドネイティブゲートウェイのCLB IPアドレス。

ステップ 5:Podを使用してMSEへのアクセスをテストする

curl http://www.aliyun.com/product/aliware/mse --resolve  www.aliyun.com:80:xx.xx.xx.xx
説明

xx.xx.xx.xx は、ステップ 4 で取得したCLB IPアドレスを示します。

関連情報

Ingressリソースに基づいてMSEクラウドネイティブゲートウェイの他の高度な機能を使用する方法の詳細については、「MSE Ingressの高度な使用方法」をご参照ください。