文档

在ASM入口网关中使用网络型负载均衡NLB

更新时间:

网络型负载均衡NLB(Network Load Balancer)是阿里云面向万物互联时代推出的新一代四层负载均衡,支持超高性能和自动弹性能力,具有更高的可用性,能够进一步提升网关流量的稳定性。ASM网关支持使用NLB。配置ASM网关的ServiceType为LoadBalancer时,默认会关联一个CLB作为网关Service的负载均衡器。本文介绍如何关联一个NLB作为ASM网关的负载均衡器。

前提条件

已添加Kubernetes集群到ASM实例,且满足以下条件:

  • Kubernetes集群版本为v1.24及以上且CCM版本为v2.5.0及以上。

  • ASM实例版本为1.18及以上。

操作步骤

  1. 登录ASM控制台,在左侧导航栏,选择服务网格 > 网格管理

  2. 网格管理页面,单击目标实例名称,然后在左侧导航栏,选择ASM网关 > 入口网关

  3. 入口网关页面,单击使用YAML创建,配置网关名称为ingressgateway-nlb-test,选择命名空间istio-system,配置如下YAML。

    YAML中需要配置loadBalancerClassalibabacloud.com/nlb。NLB不需要指定规格,但是需要指定至少两个可用区。

    展开查看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的网关,服务地址显示为一个域名。如果您创建入口网关时指定了两个可用区,则该域名后面会绑定两个IP地址。

    nlb.png

    您可以登录NLB控制台,查看当前NLB的状态。关于NLB的更多信息,请参见通过Annotation配置网络型负载均衡NLBNLB产品计费