更新时间:2024-02-04 GMT+08:00

负载通道

负载通道主要用于将服务通过API网关专享版开放给外部访问。它的优势在于使用VPC的内部子网通信,网络时延更低,同时负载通道具有负载均衡功能(服务器通道类型),以及自动同步服务节点变更的能力(微服务通道类型),从而实现后端服务的负载均衡或自动同步服务节点的变更。

创建负载通道后,在创建API,且后端服务类型为HTTP/HTTPS时,后端服务地址可以直接使用已创建的负载通道。

例如,负载中包含6台ECS,已创建一条负载通道,其中ECS 01和ECS 04已添加到负载通道中,此时API网关通过负载通道可以直接访问负载中的ECS 01和ECS 04。

图1 通过API网关访问负载通道中的ECS

前提条件

  • 用户需要具备VPC Administrator角色权限。
  • 如果通道类型为服务器,已创建云服务器。API网关与负载通道中的服务器之间网络互通。
  • 如果通道类型为微服务,已创建集群,集群类型为CCE集群(VPC网络模型)或Turbo集群。并且已创建工作负载
    • 如果当前实例不支持微服务通道类型,请联系技术支持升级实例到最新版本。
    • 已创建的CCE集群与API网关实例属于同一个VPC,或者二者之间通过对等连接等方式保证网络可达。通过同一个VPC(有扩展网段等)、对等连接等方式连接网络时,需要在控制台将CCE集群详情中的“容器网段”添加到API网关实例详情中的“路由”上,否则会导致API网关到容器网络不通。
    • 已创建的工作负载需配置Pod标签,在微服务配置时可通过Pod标签来指定工作负载,如用于工作负载服务的版本区分等。具体操作请参考标签与注解
      • 在CCE控制台通过“创建负载”方式创建工作负载时,配置Pod标签。进入创建工作负载页面,在“高级配置 > 标签与注释 > Pod标签”区域配置即可。
      • 在CCE控制台通过“YAML创建”方式创建工作负载时,配置Pod标签。例如“app=service01”
        spec:
          replicas: 2
          selector:
            matchLabels:
              app: 'service01'

创建负载通道

  1. 进入API网关控制台页面。
  2. 根据实际业务在左侧导航栏上方选择实例。
  3. 在左侧导航栏选择“API管理 > API策略”。
  1. 单击“负载通道”页签,进入到负载通道列表页面。
  2. 单击“创建负载通道”,配置基本信息。

    表1 基本信息配置

    信息项

    描述

    通道名称

    自定义负载通道名称,用于识别不同的负载通道。

    端口

    负载通道中主机的端口号,即用户的后端业务端口号。

    取值范围为1 ~ 65535。

    分发算法

    通过分发算法确定请求被发送到哪台主机。

    分发算法包含如下几种:

    • 加权轮询
    • 加权最小连接
    • 源地址哈希
    • URI哈希

    通道类型

    • 选择服务器类型,API的请求将被分发到通道中的弹性云服务器或指定的服务器IP,具体操作请参见6
    • 选择微服务类型,API的请求将被分发到通道中的微服务IP,具体操作请参见7

  3. 配置通道内服务器。

    负载通道支持私网ELB,可通过指定服务器地址配置。

    • 选择云服务器。
      1. 单击“创建服务器分组”。
        在弹窗中填写服务器分组信息,单击“确定”。
        表2 服务器分组配置

        信息项

        描述

        分组名称

        填写服务器分组的名称,根据规划自定义。建议您按照一定的命名规则填写分组名称,方便您快速识别和查找。

        权重

        填写服务器分组的权重值,权重值越大,转发到该分组下服务器的请求数量越多。

        描述

        填写分组的描述信息。

      2. 单击“添加云服务器”。

        在弹窗中,选择子网并勾选要添加的云服务器,单击“确定”。

      3. 配置完成后,进行健康检查配置
    • 指定服务器地址。
      1. 单击“创建服务器分组”。

        在弹窗中填写服务器分组信息,单击“确定”。配置参数请参考表2

      2. 单击“添加后端服务器地址”,在列表中填写后端服务器地址。
        表3 后端服务器配置

        信息项

        描述

        后端服务器地址

        填写后端服务器的IP地址。

        是否备用节点

        开启后对应后端服务器为备用节点,仅当非备用节点全部故障时工作。

        端口

        填写后端服务器的访问端口号,端口为0时使用负载通道的端口。

        启停状态

        选择是否启用服务器,只有启用后,请求才会分发到该服务器上。

      3. 配置完成后,进行健康检查配置

  4. 配置微服务和服务器分组。

    1. 根据下表参数说明,配置微服务信息。
      表4 微服务配置

      信息项

      描述

      微服务类型

      云容器引擎(Cloud Container Engine,简称CCE)

      集群

      选择集群,可单击“查看云容器引擎CCE”查看。

      命名空间

      选择CCE集群的命名空间。命名空间是对一组资源和对象的抽象整合。

      工作负载类型

      • 无状态负载 Deployment:在运行中始终不保存任何数据或状态的工作负载称为无状态负载 。
      • 有状态工作负载 Statefulset:在运行过程中会保存数据或状态的工作负载称为有状态工作负载。
      • 守护进程集 DaemonSet:守护进程集可以确保全部(或者某些)节点上仅运行一个Pod实例,当有节点加入集群时,也会为其新增一个Pod 。 当有节点从集群移除时,这些Pod会被回收。
        说明:

        删除DaemonSet将会删除它创建的所有Pod。

      工作负载类型的介绍请参考工作负载概述

      服务标识名

      选择工作负载的Pod标签,通过Pod标签指定某个工作负载。服务标识名为Pod标签的键,服务标识值为Pod标签的值。

      Pod标签相关内容指导,请参考标签与注解

      服务标识值

    2. 配置服务器分组。
      单击“添加服务器分组”,配置信息。
      表5 服务器分组配置

      信息项

      描述

      服务器分组名称

      默认为服务标识值,用户也可根据业务需求修改。

      权重分配

      默认:1,范围0~100。

      说明:

      分发算法选择哈希算法时,权重默认为1,且不支持修改。

      后端服务端口

      默认负载通道端口。

      工作负载名称

      选择CCE工作负载。

      标签

      选择工作负载的Pod标签。如果服务标识名和服务标识值不唯一,且不能指定某个工作负载时,还可以通过选择其他Pod标签指定某个工作负载。

      例如,工作负载01和工作负载02的app相同,可通过选择version或test_name区分工作负载01或工作负载02。

      工作负载01:

      spec:
        replicas: 2
        selector:
          matchLabels:
            app: 'app01'
            version: 'v1'

      工作负载02:

      spec:
        replicas: 2
        selector:
          matchLabels:
            app: 'app01'
            test_name: 'test_value'
    3. 配置完成后,进行健康检查配置

  5. 配置健康检查。

    表6 基本信息配置

    信息项

    描述

    协议

    使用以下协议,对负载中主机执行健康检查。

    • TCP
    • HTTP
    • HTTPS

    默认为TCP协议。

    双向认证

    仅在协议为“HTTPS”时,需要设置。

    开启后,API网关将认证API后端服务。双向认证所需的证书配置说明,请参考配置参数

    路径

    仅在协议不为“TCP”时,需要设置。

    健康检查时的目标路径。

    请求类型

    • GET
    • HEAD

    检查端口

    健康检查的目标端口。

    缺省时,检查端口为负载通道的端口号。

    正常阈值

    判定负载通道中主机正常的依据为:连续检查x成功,x为您设置的正常阈值。

    取值范围为2 ~ 10。缺省值为2。

    异常阈值

    判定负载通道中主机异常的依据为:连续检查x失败,x为您设置的异常阈值。

    取值范围为2 ~ 10。缺省值为5。

    超时时间

    检查期间,无响应的时间,单位为秒。

    取值范围为2 ~ 30。缺省值为5。

    间隔时间

    连续两次检查的间隔时间,单位为秒。

    取值范围为5 ~ 300。缺省值为10。

    HTTP响应码

    仅在协议不为“TCP”时,需要设置。

    检查目标HTTP响应时,判断成功使用的HTTP响应码。

  6. 单击“完成”,完成负载通道的创建。

    如果通道类型为微服务,CCE工作负载的“实例IP”变更(增删改),“后端服务器地址”会同步变更。

    图2 微服务类型负载通道详情

后续操作

  1. 确认APIG实例已添加路由。通过同一个VPC(有扩展网段等)、对等连接等方式连接CCE负载与APIG实例的网络时,需要添加路由。
    1. 进入云容器引擎控制台,在“集群管理”页面单击已创建的CCE集群名称。
    2. 在“总览”页面的“网络信息”区域查看“容器网段”,并记录。
    3. 进入API网关控制台,在“实例管理”页面单击对应的实例名称。
    4. 在“实例信息”页面的“路由”区域查看已添加的路由与容器网段是否一致。如果不一致,请添加。
  2. 创建API,将部署在负载中的后端服务开放API。