负载均衡SLB是一种对流量进行按需分发的服务,可以将流量分发到不同的后端服务来扩展应用系统的服务吞吐能力,并且可以消除系统中的单点故障,提升应用系统的可用性。本文介绍如何将ECI实例添加到SLB实例的后端服务器中,并配置监听,实现通过SLB将流量分发到ECI实例。
背景信息
负载均衡SLB(Server Load Balancer)由SLB实例、后端服务器和监听三部分组成,配置ECI实例挂载到SLB的操作流程如下:
创建ECI实例
搭建负载均衡服务前,您需要根据业务需求规划地域和网络,然后在此基础上创建ECI实例,完成相关应用部署。
创建SLB实例
使用负载均衡服务时,您需要创建一个SLB实例,每个SLB实例代表一个负载均衡服务实体,用于接收流量并将其分发给后端服务器。
SLB分为多个类型,您可以根据业务需求进行选择,具体请参见负载均衡SLB产品家族介绍。
将ECI实例添加到SLB实例的后端服务器中
后端服务器是一组接收前端请求的服务器。将ECI实例添加到后端服务器后,可以接收SLB实例转发的客户端请求。对于ALB和NLB实例,您需要先创建一个服务器组,然后再添加ECI实例;对于CLB实例,您可以直接将ECI实例添加到默认服务器组。
配置监听
监听用于检查客户端请求,并将请求转发给后端服务器。您需要为SLB实例配置监听,包括协议、端口和调度算法等。
准备工作
创建多个ECI实例。
此处以创建两个运行Nginx服务的ECI实例为例,创建时请开启日志收集。具体操作,请参见使用Nginx镜像创建ECI实例。
创建CLB实例。
创建一个具备公网能力的CLB实例。具体操作,请参见创建CLB实例。
说明本文以CLB为例介绍,ALB和NLB的操作类似。
操作步骤
将ECI实例添加到CLB实例的后端服务器中并配置监听,可以实现将监听请求转发到ECI实例。
不支持挂载状态为最终状态(如:Succeeded、Failed)的ECI实例。
控制台
在实例管理页面,找到目标CLB实例,在对应操作列中单击添加后端服务器。
在我的服务器面板,完成服务器添加。
选择后端服务器类型为弹性容器实例ECI,然后选中多个ECI实例,单击下一步。
根据需要配置权重,单击添加。
权重默认为100,权重越大,转发的请求越多。
单击确定,然后在弹出的对话框中单击确定。
在实例的默认服务器组页签下,您可以看到新添加的ECI实例。
在实例管理页面,找到目标CLB实例,在对应操作列中单击监听配置向导。
在协议&监听配置向导页,完成监听配置,然后单击下一步。
配置时,请根据需要选择协议并设置监听端口,此处配置示例如下:
协议选择TCP
监听端口设置为80
其它配置保持默认配置
在后端服务器配置向导页,完成服务器配置,然后单击下一步。
配置时,选择默认服务器组,您可以看到步骤3添加的ECI实例已经显示在列表中,请根据需要设置各服务器的监听端口,此处示例设置端口为80。
在健康检查向导页,保持默认配置,单击下一步。
在配置审核向导页,确认配置,单击提交
OpenAPI
调用ECI的DescribeContainerGroups接口查询ECI实例相关信息。
在返回参数中获取并记录ECI实例相关信息:
ECI实例ID,对应参数为ContainerGroupId。
ECI实例内网IP,对应参数为IntranetIp。
调用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:用来接收请求的后端端口。
调用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。
调用CLB的StartLoadBalancerListener接口启动监听。
结果验证
在本地重复以下命令,多次curl CLB实例的公网IP。
curl 39.106.**.** 80
查看ECI实例的日志,可以看到请求已通过CLB实例分发到不同的ECI实例上。