为ECI实例配置负载均衡

负载均衡SLB是一种对流量进行按需分发的服务,可以将流量分发到不同的后端服务来扩展应用系统的服务吞吐能力,并且可以消除系统中的单点故障,提升应用系统的可用性。本文介绍如何将ECI实例添加到SLB实例的后端服务器中,并配置监听,实现通过SLB将流量分发到ECI实例。

背景信息

负载均衡SLB(Server Load Balancer)由SLB实例、后端服务器和监听三部分组成,配置ECI实例挂载到SLB的操作流程如下:

  1. 创建ECI实例

    搭建负载均衡服务前,您需要根据业务需求规划地域和网络,然后在此基础上创建ECI实例,完成相关应用部署。

  2. 创建SLB实例

    使用负载均衡服务时,您需要创建一个SLB实例,每个SLB实例代表一个负载均衡服务实体,用于接收流量并将其分发给后端服务器。

    SLB分为多个类型,您可以根据业务需求进行选择,具体请参见负载均衡SLB产品家族介绍

  3. 将ECI实例添加到SLB实例的后端服务器中

    后端服务器是一组接收前端请求的服务器。将ECI实例添加到后端服务器后,可以接收SLB实例转发的客户端请求。对于ALB和NLB实例,您需要先创建一个服务器组,然后再添加ECI实例;对于CLB实例,您可以直接将ECI实例添加到默认服务器组。

  4. 配置监听

    监听用于检查客户端请求,并将请求转发给后端服务器。您需要为SLB实例配置监听,包括协议、端口和调度算法等。

准备工作

  1. 创建多个ECI实例。

    此处以创建两个运行Nginx服务的ECI实例为例,创建时请开启日志收集。具体操作,请参见使用Nginx镜像创建ECI实例

    slb1

  2. 创建CLB实例。

    创建一个具备公网能力的CLB实例。具体操作,请参见创建CLB实例

    说明

    本文以CLB为例介绍,ALB和NLB的操作类似。

    slb2

操作步骤

将ECI实例添加到CLB实例的后端服务器中并配置监听,可以实现将监听请求转发到ECI实例。

说明

不支持挂载状态为最终状态(如:Succeeded、Failed)的ECI实例。

控制台

  1. 登录传统型负载均衡CLB控制台

  2. 实例管理页面,找到目标CLB实例,在对应操作列中单击添加后端服务器

  3. 我的服务器面板,完成服务器添加。

    1. 选择后端服务器类型为弹性容器实例ECI,然后选中多个ECI实例,单击下一步

    2. 根据需要配置权重,单击添加

      权重默认为100,权重越大,转发的请求越多。

    3. 单击确定,然后在弹出的对话框中单击确定

      在实例的默认服务器组页签下,您可以看到新添加的ECI实例。

  4. 实例管理页面,找到目标CLB实例,在对应操作列中单击监听配置向导

  5. 协议&监听配置向导页,完成监听配置,然后单击下一步

    配置时,请根据需要选择协议并设置监听端口,此处配置示例如下:

    • 协议选择TCP

    • 监听端口设置为80

    • 其它配置保持默认配置

  6. 后端服务器配置向导页,完成服务器配置,然后单击下一步

    配置时,选择默认服务器组,您可以看到步骤3添加的ECI实例已经显示在列表中,请根据需要设置各服务器的监听端口,此处示例设置端口为80。

  7. 健康检查向导页,保持默认配置,单击下一步

  8. 配置审核向导页,确认配置,单击提交

OpenAPI

  1. 调用ECI的DescribeContainerGroups接口查询ECI实例相关信息。

    在返回参数中获取并记录ECI实例相关信息:

    • ECI实例ID,对应参数为ContainerGroupId。

    • ECI实例内网IP,对应参数为IntranetIp。

  2. 调用CLB的AddBackendServers接口添加后端服务器。

    主要参数说明如下表所示。

    名称

    类型

    示例值

    描述

    LoadBalancerId

    String

    lb-2ze7o5h52g02kkzz******

    CLB实例ID。

    BackendServers

    String

    [{ "ServerId": "eci-2zeb9fwsn3n5lano****", "Weight": "100", "Type": "eci", "ServerIp": "172.16.12.**", "Port":"80","Description":"test" },{ "ServerId": "eci-2zeb9fwsn3n5lano****", "Weight": "100", "Type": "eci", "ServerIp": "172.16.12.**", "Port":"80","Description":"test" }]

    要添加的后端服务器列表。包含以下参数:

    • ServerId:后端服务器实例ID。此处填入ECI实例ID。

    • Weight:后端服务器权重。取值为0~100,默认值为100。如果值为0,则不会将请求转发给该后端服务器。

    • Description:后端服务器描述。

    • Type:后端服务器类型。此处配置为eci

    • ServerIp:实例IP地址。此处填入ECI实例内网IP。

    • Port:用来接收请求的后端端口。

  3. 调用CLB的监听相关API接口创建监听。

    本文以创建TCP监听为例,主要参数说明如下表所示。

    名称

    类型

    示例值

    描述

    Bandwidth

    Integer

    -1

    监听的带宽峰值。取值范围:

    • -1:对于按流量计费的公网CLB实例,可以将带宽峰值设置为-1,即不限制带宽峰值。

    • 1~5120:对于按带宽计费的公网CLB实例,可以设置每个监听的带宽峰值,但所有监听的带宽峰值之和不能超过实例的带宽峰值。单位为Mbps。

    BackendServerPort

    Integer

    80

    CLB实例后端使用的端口。

    取值范围:1~65535。

    LoadBalancerId

    String

    lb-2ze7o5h52g02kkzz******

    CLB实例ID。

    ListenerPort

    Integer

    80

    CLB实例前端使用的端口。

    取值范围:1~65535。

  4. 调用CLB的StartLoadBalancerListener接口启动监听。

结果验证

  1. 在本地重复以下命令,多次curl CLB实例的公网IP。

    curl 39.106.**.** 80
  2. 查看ECI实例的日志,可以看到请求已通过CLB实例分发到不同的ECI实例上。