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

Alibaba Cloud Service Mesh:複数クラスターの統合イングレスゲートウェイの構成

最終更新日:Jan 13, 2025

サービスメッシュ(ASM)ゲートウェイは、サービスの可用性を向上させるために複数のクラスターにデプロイできます。複数のクラスターにサービスをデプロイし、これらのクラスターへのイングレストラフィックを管理するために、これらのクラスターに対して統合イングレスゲートウェイを構成できます。このトピックでは、複数クラスターの統合イングレスゲートウェイを構成する方法について説明します。

前提条件

構成の説明

ASM ゲートウェイが複数のクラスターにデプロイされると、ゲートウェイポッドと対応するサービスがクラスターに作成され、クラシックロードバランサー(CLB)インスタンスが各サービスにアタッチされます。したがって、複数のクラスターにサービスを提供する ASM ゲートウェイには、複数の IP アドレスがあります。

ASM ゲートウェイでは、既存の CLB インスタンスを再利用できます。ただし、複数のサービスに同じ CLB インスタンスを再利用することはお勧めしません。

このトピックでは、次の 2 つのシナリオで複数クラスターの統合イングレスゲートウェイを構成する方法について説明します。

シナリオ 1:複数クラスターの同一のゲートウェイ関連リソース構成

複数クラスターのゲートウェイ関連リソースが同一である場合、ASM コンソールでマルチクラスターゲートウェイを作成するか、単一クラスターゲートウェイをマルチクラスターゲートウェイに変更できます。ASM は、ゲートウェイの構成に基づいて、すべてのクラスターに同一の構成のゲートウェイを作成します。

方法 1:マルチクラスターゲートウェイを作成する

ASM コンソールで関連する構成項目を設定するか、YAML ファイルを使用して、マルチクラスターゲートウェイを作成できます。

  1. ASM コンソール にログインします。左側のナビゲーションペインで、[サービスメッシュ] > [メッシュ管理] を選択します。

  2. [メッシュ管理] ページで、ASM インスタンスの名前をクリックします。左側のナビゲーションペインで、[ASM ゲートウェイ] > [イングレスゲートウェイ] を選択します。

  3. マルチクラスターゲートウェイを作成します。

    • 方法 1:ASM コンソールで関連する構成項目を設定してマルチクラスターゲートウェイを作成する

      1. [イングレスゲートウェイ] ページで、[作成] をクリックします。

      2. [作成] ページで、[クラスター] ドロップダウンリストから複数のクラスターを選択し、関連パラメーターを構成して、[作成] をクリックします。

        他の構成項目の説明については、「イングレスゲートウェイの作成」をご参照ください。入口网关配置

    • 方法 2:YAML ファイルを使用してマルチクラスターゲートウェイを作成する

      1. [イングレスゲートウェイ] ページで、[YAML から作成] をクリックします。

      2. [作成] ページで、YAML ファイルの次のフィールドを構成し、[作成] をクリックします。

        apiVersion: istio.alibabacloud.com/v1beta1
        kind: IstioGateway
        metadata:
          name: ingressgateway-multi-cluster
          namespace: istio-system
        spec:
          affinity: {}
          autoCreateGatewayYaml: false
          clusterIds:
            - c87e370627c3f4e62ac77a7*********
            - c877e9b78610a419e833f22*********
          compression: {}
          cpu: {}
          dnsPolicy: ClusterFirst
          externalTrafficPolicy: Local
          gatewayType: ingress
          hostNetwork: false
          kernel:
            parameters: {}
          memory: {}
          ports:
            - name: http-0
              port: 80
              protocol: HTTP
              targetPort: 80
            - name: https-1
              port: 443
              protocol: HTTPS
              targetPort: 443
          readinessProbe: {}
          replicaCount: 2
          resources:
            limits:
              cpu: '2'
              memory: 4G
            requests:
              cpu: 200m
              memory: 256Mi
          runAsRoot: true
          sds: {}
          serviceAnnotations:
            service.beta.kubernetes.io/alibaba-cloud-loadbalancer-spec: slb.s1.small
            service.beta.kubernetes.io/alicloud-loadbalancer-address-type: internet
          serviceType: LoadBalancer

方法 2:単一クラスターゲートウェイをマルチクラスターゲートウェイに変更する

シングルクラスターゲートウェイを作成した場合は、ゲートウェイ YAML ファイルの spec.clusterIds フィールドに必要なクラスターを追加して、シングルクラスターゲートウェイをマルチクラスターゲートウェイに変更できます。

  1. ASM コンソール にログオンします。左側のナビゲーションペインで、サービスメッシュ > メッシュ管理 を選択します。

  2. メッシュ管理 ページで、ASM インスタンスの名前をクリックします。左側のナビゲーションペインで、ASM ゲートウェイ > イングレスゲートウェイ を選択します。

  3. イングレスゲートウェイ ページで、管理するイングレスゲートウェイを見つけ、ゲートウェイ編集領域で YAML をクリックします。

  4. 編集 ダイアログボックスで、目的のクラスターの ID を spec.clusterIds フィールドに追加し、OK をクリックします。

    YAML示例

マルチクラスターゲートウェイが作成されているかどうかの確認

データプレーン上の 2 つのクラスターの istio-system 名前空間にあるゲートウェイのサービスリソースとデプロイメントリソースを表示できます。 2 つのクラスターに同じ構成リソースがある場合、マルチクラスターゲートウェイは正常に作成されています。

シナリオ 2:複数クラスターの異なるゲートウェイ関連リソース構成

ゲートウェイは 2 つのクラスターにデプロイされており、2 つのクラスターには異なるゲートウェイ構成が必要です。たとえば、一方のクラスターは自動的に作成された CLB インスタンスを使用する必要があり、もう一方のクラスターは既存の CLB インスタンスを再利用する必要があります。一方のクラスターには 3 つのゲートウェイレプリカが必要で、もう一方には 5 つのゲートウェイレプリカが必要です。マルチクラスターゲートウェイの構成をカスタマイズするには、対応する YAML ファイルを変更する必要があります。次の例では、マルチクラスターゲートウェイで異なるタイプの CLB インスタンスを構成する方法について説明します。一方のクラスターのゲートウェイは自動的に作成された CLB インスタンスを使用し、もう一方のクラスターのゲートウェイは既存の CLB インスタンスを再利用します。

  1. ASM コンソール にログインします。左側のナビゲーションペインで、[サービスメッシュ] > [メッシュ管理] を選択します。

  2. [メッシュ管理] ページで、ASM インスタンスの名前をクリックします。左側のナビゲーションペインで、[ASM ゲートウェイ] > [イングレスゲートウェイ] を選択します。

  3. [イングレスゲートウェイ] ページで、[YAML から作成] をクリックします。

  4. [作成] ページで、YAML ファイルの次のフィールドを構成し、[作成] をクリックします。

    apiVersion: istio.alibabacloud.com/v1beta1
    kind: IstioGateway
    metadata:
      name: ingressgateway2
      namespace: istio-system
    spec:
      autoCreateGatewayYaml: false
      clusterIds:
        - c0ed16dbd6c5e429faca464**********
        - c7d5fba8f3c974353b56522**********
      compression: {}
      cpu: {}
      dnsPolicy: ClusterFirst
      externalTrafficPolicy: Local
      gatewayType: ingress
      hostNetwork: false
      kernel:
        parameters: {}
      memory: {}
      overrides:
        c0ed16dbd6c5e429faca464***********:
          serviceAnnotations:
            service.beta.kubernetes.io/alibaba-cloud-loadbalancer-spec: slb.s1.small
            service.beta.kubernetes.io/alicloud-loadbalancer-address-type: internet
        c7d5fba8f3c974353b56522**********:
          serviceAnnotations:
            service.beta.kubernetes.io/alibaba-cloud-loadbalancer-id: lb-bp1lv01rlga********
      ports:
        - name: http-0
          port: 80
          protocol: HTTP
          targetPort: 80
        - name: https-2
          port: 443
          protocol: HTTPS
          targetPort: 443
      readinessProbe: {}
      replicaCount: 1
      resources:
        limits:
          cpu: '2'
          memory: 4G
        requests:
          cpu: 200m
          memory: 256Mi
      rollingMaxSurge: 25%
      rollingMaxUnavailable: 25%
      runAsRoot: true
      sds: {}
      serviceType: LoadBalancer

    overrides フィールドは、Map タイプの構造です。キーはクラスターの ID です。その値は、ゲートウェイの spec 構成フィールドと同じです。 CLB インスタンス関連のパラメーター、ゲートウェイレプリカの数、ゲートウェイリソースの仕様などのパラメーターを構成できます。 overrides フィールドでは、各クラスターのパラメーターを個別に構成できます。この構成は、最も外側のゲートウェイ構成よりも優先されます。フィールドの説明の詳細については、「ASM ゲートウェイの CRD フィールド」をご参照ください。

  5. マルチクラスターゲートウェイが作成されているかどうかの確認。

    2 つのクラスターの istio-system 名前空間にあるゲートウェイのサービスリソースを表示できます。一方のクラスターのサービスの外部 IP アドレスが自動的に作成された CLB インスタンスの IP アドレスであり、もう一方のクラスターのサービスの外部 IP アドレスが指定された CLB インスタンスの IP アドレスである場合、マルチクラスターゲートウェイは正常に作成されています。