通过关联负载均衡NLB调用

更新时间:
复制为 MD 格式

EAS服务关联网络负载均衡NLB实例后,可统一管理和调度EAS服务,并利用其强大的访问控制功能,尤其适合需要负载均衡能力的高流量服务。

重要

NLB挂载暂不支持LLM智能路由。

计费说明

使用NLB会产生一定的费用,详细的计费说明,请参见NLB计费规则

调用原理

image

原理介绍:

  • EAS服务配置VPC网络后,系统将为EAS服务的每个Pod分配一个VPC内的IP地址。

  • EAS服务关联一个同VPC内的NLB实例后,系统会为NLB实例添加一个TCP监听,将监听端口上接收到的请求直接转发至EAS服务。

配置方法

控制台配置

在部署配置页面的网络信息区域,配置专有网络并开启关联负载均衡NLB,步骤如下:

  1. 配置专有网络:关联NLB必须为EAS服务配置VPC、交换机和安全组。如无,请参见创建和管理专有网络管理安全组

    • 专有网络:如关联已有NLB实例,请使用与NLB实例一致的专有网络。

    • 交换机:保证交换机可用IP数量与副本数相匹配。

    • 安全组

      • 请确保安全组未被其他云产品使用。

      • 安全组的入方向配置需确保EAS实例IP及其8080端口在授权的IP和端口范围内。

  2. 开启关联负载均衡NLB,选择配置方式

    • 使用系统创建的NLB实例:系统会在当前账号下自动创建NLB实例,其生命周期与当前部署的服务保持一致。

    • 关联已有的NLB实例:用户先自行创建NLB实例然后关联(EAS服务必须配置与NLB实例同样的VPC)。

  3. 网络选择

    • 使用系统创建的NLB实例时,需选择NLB实例的网络类型。

    • 支持公网或专有网络。 两者都选,将创建2NLB实例。

  4. 端口号:NLB的监听端口。可选。范围1~65535。

    • 若填写,将通过NLB域名:监听端口访问EAS服务。

      重要
      • 不能使用8080端口。因EAS引擎监听固定该端口,若使用该端口会导致服务因端口冲突而无法正常完成启动。

      • 请使用未被NLB监听的端口,以避免冲突。

    • 若不填,则为NLB实例配置监听时开启全端口功能,将通过NLB域名:服务端口访问EAS服务。

JSON配置

关联NLB实例需配置的JSON参数如下,各参数配置注意点请参见控制台配置

参数

描述

cloud

networking

vpc_id

EAS服务配置专有网络ID、交换机ID和安全组ID。

vswitch_id

security_group_id

networking

nlb

id

取值如下:

  • default:系统将新建 NLB实例并关联。

  • 已有的NLB实例ID:将关联已有的NLB实例。

net_type

网络类型,仅使用系统创建的NLB实例时需填写,取值如下:

  • internet:公网。

  • intranet:专有网络。

listener_port

NLB的监听端口。

配置示例:

{
  "cloud": {
    "computing": {
     .... // 部署资源
    },
    "networking": {
      "security_group_id": "sg-bp1brugkivv2im5738q9",
      "vpc_id": "vpc-bp1uepgqtarjwghnfy9po",
      "vswitch_id": "vsw-bp1glkxasep5isqpvbj0t,vsw-bp1atvza5gzz0hedw2eci"
    }
  },
  "metadata": {
   .... // 其他配置信息
  },
  "networking": {
    "nlb": [
      {
        "id": "default",
        "listener_port": 80,
        "net_type": "internet"
      }
    ]
  }
}

验证网络连通性

服务部署成功后,验证NLB域名:监听端口的网络连通性:

  1. 登录网络型负载均衡NLB控制台,在目标NLB实例DNS名称列,查看NLB域名。image

  2. 执行命令telnet NLB域名 监听端口,验证NLB域名连通性。

    其中监听端口是您部署服务时关联NLB时配置的端口号,若未填写为EAS服务的端口号;域名为上述步骤查询的DNS域名。

    • 公网NLB:可在本地终端中执行命令进行验证。

    • 私网NLB:在专有网络内的终端机器上,执行命令进行验证。

    示例结果如下所示:image

  3. 通过NLB域名和端口来调用EAS服务。示例如下,您的调用命令和结果以实际为准。

    # 示例命令  
    curl http://<NLB域名>:<监听端口>/path/to/api -H 'Authorization:<service_token>' -d '[{"浙江的省会城市是 哪里?"}]'
    # 示例结果
    {"response":"浙江的省会城市是杭州。","history":[["[{\"浙江的省会城市是哪里?\"}]","浙江的省会城市是杭州。"]]}
    

    其中,<NLB域名>:<监听端口>替换的是服务访问地址中的网关域名。如 服务访问地址http://123456***.cn-hangzhou.pai-eas.aliyuncs.com/api/predict/your-service-name对应的NLB请求地址为http://<NLB域名>:<监听端口>/api/predict/your-service-name