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

Alibaba Cloud Service Mesh:NLBインスタンスをイングレスゲートウェイに関連付ける

最終更新日:Jan 15, 2025

ネットワークロードバランサー(NLB)インスタンスは、Alibaba Cloudがモノのインターネット(IoE)向けに開発した次世代のレイヤー 4 ロードバランサーです。 NLBは超高性能を提供し、自動スケーリングをサポートし、より高い可用性を提供し、ゲートウェイトラフィックの安定性をさらに向上させます。 ASMイングレスゲートウェイはNLBの使用をサポートしています。イングレスゲートウェイのServiceTypeをLoadBalancerに設定すると、クラシックロードバランサー(CLB)インスタンスがゲートウェイサービスのロードバランサーとして自動的に関連付けられます。このトピックでは、NLBインスタンスをイングレスゲートウェイに関連付ける方法について説明します。

前提条件

KubernetesクラスターがASMインスタンスに追加されていること。以下の条件を満たしている必要があります。

  • Kubernetesクラスターのバージョンが V1.24 以降であり、クラウドコントローラーマネージャー(CCM)のバージョンが V2.5.0 以降であること。

  • ASMインスタンスのバージョンが V1.18 以降であること。

  • ACKクラスターが存在するVPCに、少なくとも 2 つのゾーンに vSwitch があること。

手順

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

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

  3. コンソールまたはYAMLテンプレートを使用してイングレスゲートウェイを作成することを選択できます。

    コンソールを使用してイングレスゲートウェイを作成する

    [イングレスゲートウェイ] ページで、[作成] をクリックします。このトピックでは、NLBインスタンスのパラメーターについてのみ説明します。他の構成パラメーターの詳細については、「イングレスゲートウェイを作成する」をご参照ください。

    構成項目

    説明

    NLB

    [サービスの種類][ロードバランサー] に設定されている場合にのみ、この構成が必要です。

    [インターネットアクセス][VPCアクセス] がサポートされています。

    SLBインスタンスの作成

    • デフォルトでは、コンソールで [SLBインスタンスの作成] が選択されています。必要に応じて、[既存の SLB インスタンスを使用する] を選択できます。

    • このオプションを選択した後、以下の [NLBインスタンスのゾーンを選択] で、少なくとも 2 つのゾーン にデプロイされた vSwitch を選択する必要があります。

    既存の SLB インスタンスを使用する

    このオプションを選択した後、以下の [既存のロードバランサーを選択] で、既存の NLB インスタンスを選択する必要があります。

    重要

    Kubernetesサービスごとにロードバランサーを割り当てることをお勧めします。複数のKubernetesサービスが同じロードバランサーを共有する場合、以下のリスクと制限があります。

    • 既存のロードバランサーを使用すると、既存のリスナーが上書きされ、アプリケーションにアクセスできなくなる可能性があります。

    • Kubernetes が Service を介して作成したロードバランサーは再利用できません。コンソールで手動で作成されたもの(または OpenAPI を呼び出して作成されたもの)のみを再利用できます。

    • 同じロードバランサーを共有する複数の Service は、ポートの競合が発生するため、同じフロントエンドリスナーポートを持つことはできません。

    • ロードバランサーを再利用する場合、リスナーと vServer グループの名前は Kubernetes によって一意の識別子として使用されます。したがって、リスナーまたは vServer グループの名前を変更しないでください。

    • クロス クラスターおよびクロス リージョンのロードバランサーの再利用はサポートされていません。

    YAMLテンプレートを使用してイングレスゲートウェイを作成する

    [イングレスゲートウェイ] ページで、[YAML テンプレートを使用] をクリックし、ゲートウェイ名を ingressgateway-nlb-test に設定し、[名前空間][istio-system] を選択します。次の YAML を構成します。

    YAMLでは、loadBalancerClassalibabacloud.com/nlb に設定する必要があります。 NLBインスタンスの仕様を指定する必要はありませんが、少なくとも 2 つのゾーンを指定する必要があります。

    展開して YAML を表示

    apiVersion: istio.alibabacloud.com/v1
    kind: IstioGateway
    metadata:
      name: ingressgateway-nlb-test
      namespace: istio-system
    spec:
      affinity:
        podAntiAffinity:
          preferredDuringSchedulingIgnoredDuringExecution:
          - podAffinityTerm:
              labelSelector:
                matchExpressions:
                - key: istio
                  operator: In
                  values:
                  - ingressgateway
              topologyKey: kubernetes.io/hostname
            weight: 1
      autoCreateGatewayYaml: false
      clusterIds:
      - ${現在のメッシュに追加されたクラスターID} // 翻訳済みのコメント
      disableContainerPortExposed: true
      dnsPolicy: ClusterFirst
      externalTrafficPolicy: Local
      gatewayType: ingress
      hostNetwork: false
      ports:
      - name: http-0
        port: 80
        protocol: HTTP
        targetPort: 80
      - name: https-1
        port: 443
        protocol: HTTPS
        targetPort: 443
      replicaCount: 2
      resources:
        limits:
          cpu: "2"
          memory: 4G
        requests:
          cpu: 200m
          memory: 256Mi
      rollingMaxSurge: 25%
      rollingMaxUnavailable: 25%
      runAsRoot: true
      serviceAnnotations:
        service.beta.kubernetes.io/alibaba-cloud-loadbalancer-connection-drain: "on"
        service.beta.kubernetes.io/alibaba-cloud-loadbalancer-connection-drain-timeout: "10"
        service.beta.kubernetes.io/alicloud-loadbalancer-address-type: internet
        service.beta.kubernetes.io/alibaba-cloud-loadbalancer-zone-maps: ${ゾーンID}:${このゾーンのVSwitch ID},${別のゾーンID}:${このゾーンのVSwitch ID}	// 翻訳済みのコメント。例: cn-hangzhou-g:vsw-bp1xxxxxxxxxx,cn-hangzhou-j:vsw-bp1xxxxxxxxxx
      serviceType: LoadBalancer
      loadBalancerClass: alibabacloud.com/nlb

    作成が完了すると、ページは次のように表示されます。 CLBを使用するゲートウェイの場合、[サービスアドレス] は IP アドレスとして表示されます。 NLBを使用するゲートウェイの場合、[サービスアドレス] はドメイン名として表示されます。イングレスゲートウェイの作成時に 2 つのゾーンを指定すると、2 つの IP アドレスがドメイン名にバインドされます。

    nlb.png

    NLBコンソール にログインして、現在の NLB のステータスを表示できます。詳細については、「アノテーションを使用してネットワークベースのロードバランシング NLB を構成する」および「NLB の課金」をご参照ください。