全部产品
Search
文档中心

弹性容器实例:将ECI实例挂载到SLB

更新时间:Sep 13, 2023

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

背景信息

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

  1. 创建ECI实例

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

  2. 创建SLB实例

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

    SLB分为应用型负载均衡ALB和传统型负载均衡CLB,您可以根据业务需求进行选择。两者的功能差异,请参见负载均衡SLB产品家族介绍

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

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

  4. 配置监听

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

下文以CLB为例介绍具体的操作步骤,ALB的操作类似。更多信息,请参见ALB快速入门

准备工作

  1. 创建多个ECI实例。

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

    slb1
  2. 创建CLB实例。

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

    slb2

操作步骤

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

说明

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

您可以通过CLB的openAPI挂载ECI实例对应的弹性网卡ENI,并配置监听。操作步骤如下:

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

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

    • 弹性网卡ID,对应参数为EniInstanceId。

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

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

    主要参数说明如下表所示。更多信息,请参见AddBackendServers

    名称

    类型

    示例值

    描述

    LoadBalancerId

    String

    lb-2ze7o5h52g02kkzz******

    CLB实例ID。

    BackendServers

    String

    [{ "ServerId": "eni-6wejdtelaz2bv526****", "Weight": "100", "Type": "eni", "ServerIp": "172.16.12.**", "Port":"80","Description":"test" },{ "ServerId": "eni-6wejdtelaz2bv321****", "Weight": "100", "Type": "eni", "ServerIp": "172.16.12.**", "Port":"80","Description":"test" }]

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

    • ServerId:后端服务器实例ID。此处填入ECI实例的弹性网卡ID。

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

    • Description:后端服务器描述。

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

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

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

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

    • 创建TCP监听:CreateLoadBalancerTCPListener

    • 创建UDP监听:CreateLoadBalancerUDPListener

    • 创建HTTP监听:CreateLoadBalancerHTTPListener

    • 创建HTTPS监听:CreateLoadBalancerHTTPSListener

    此处以创建TCP监听为例,主要参数说明如下表所示。更多信息,请参见CreateLoadBalancerTCPListener

    名称

    类型

    示例值

    描述

    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实例上。