更新时间:2024-10-09 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集群,并且已创建工作负载。如果未创建集群或工作负载,请参考《云容器引擎用户指南》中的“创建Standard/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时使用负载通道的端口。

        取值范围为0 ~ 65535。

        启停状态

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

      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,且不支持修改。

      后端服务端口

      后端服务器的访问端口号。不指定端口号或端口号为0时,默认使用负载通道的端口号。

      取值范围为0 ~ 65535。

      工作负载名称

      选择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”变更(增删改),“后端服务器地址”会同步变更。

后续操作

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