本文介绍如何在 ALB 控制台创建和管理服务器组。
创建服务器组
创建 ALB 实例后,您需要创建服务器组并添加至少一台后端服务器用于处理客户端请求。
背景信息
监听器类型、后端通信协议与健康检查协议的对应
在创建服务器组时,您需要指定后端通信协议和健康检查协议。监听器类型、后端通信协议与健康检查协议之间存在特定的对应关系。例如,HTTP 监听器支持的后端通信协议包括 HTTP 和 HTTPS,支持的健康检查协议包括 HTTP 和 TCP。具体见下表说明。
监听器类型 | 后端通信协议 | 健康检查协议 |
---|
HTTP | HTTP、HTTPS | HTTP、TCP |
HTTPS | HTTP、HTTPS | HTTP、TCP |
HTTP/2 | HTTP、HTTPS、gRPC | HTTP、TCP |
QUIC | HTTP、HTTPS | HTTP、TCP |
gRPC
gRPC 是由 Google 开发的高性能、开源的 RPC 框架。gRPC 基于 HTTP/2 协议实现,继承了 HTTP/2 的多项优势,如双向通信、多路复用和头部压缩等。
gRPC 使用 Protocol Buffers 作为接口定义语言和默认的二进制序列化协议,支持跨语言、跨平台的分布式服务通信。这些特性使 gRPC 特别适合构建高效的微服务架构和云原生应用。
前提条件
- 已创建私有网络 VPC。服务器组和要关联到的 ALB 实例必须处于同一 VPC。
- 已准备好后端服务器。
使用限制
只有标准版 ALB 实例支持后端通信协议 HTTPS 和 gRPC。如需使用这些协议,请提交工单或联系客户经理进行申请。
操作步骤
登录应用型负载均衡控制台。
在左侧导航栏,单击 服务器组,进入 服务器组 页面。
在 服务器组 页面,单击 创建后端服务器组。
在 创建后端服务器组 页面,参照以下说明配置相关参数,然后单击 确定。
配置项 | 描述 |
---|
服务器组类型 | 选择创建的服务器组的类型。 - 服务器类型:该服务器组中,只能添加 ECS 实例或已绑定 ECS 实例的辅助网卡作为后端服务器。ECS 实例或已绑定 ECS 实例的辅助网卡必须与 ALB 实例属于同一 VPC。
- IP类型:该服务器组中,只能添加 IP 地址作为后端服务器。在确保网络连通性的前提下,您可以添加其他 VPC 或者 IDC 内的 IP 地址。
|
名称 | 输入服务器组的名称。命名规则如下: - 必须以字母或汉字开头。
- 只能包含汉字、字母、 数字和以下特殊字符:
. _ - 。 - 最多允许 128 个字符。
|
私有网络 | 选择服务器组所属的 VPC。服务器组和要关联到的 ALB 实例必须处于同一 VPC。 说明 ALB 允许您选择其他账号共享的 VPC。如需体验该功能,请提交工单或联系客户经理进行申请。 |
调度算法 | 指定负载均衡算法。负载均衡算法决定了客户端请求如何在后端服务器之间分发。 - 加权轮询(WRR):WRR 按照预设权重值生成固定的请求分配序列。在一个轮询周期内,高权重的后端服务器接收到更多请求。WRR 仅考虑后端服务器的权重,不考虑负载。该算法适用于请求数量和单请求处理时间比较稳定,但是不同后端服务器的性能存在较大差异的场景。
- 加权最小连接数(WLC):ALB 动态计算后端服务器的“当前连接数/权重” 的值,将新的请求路由到此值最小的后端服务器。WLC 算法同时考虑了后端服务器的负载和权重。该算法适用于请求量大、单请求处理时间变化较大的情况,能够防止某台后端服务器负载过重。
- 源地址哈希(SH):相同源 IP 地址的请求会被路由到同一台后端服务器。SH 算法不考虑后端服务器的权重和负载,始终将来自相同客户端的请求路由到同一台后端服务器。该算法适用于需要会话保持的场景。
|
后端通信协议 | 指定 ALB 实例与服务器组之间通信的协议: 说明 - 创建服务器组后,将无法更改后端通信协议。
- 只有标准版 ALB 实例支持 HTTPS 和 gRPC。
- 开启了 gRPC 的服务器组只能关联到 HTTP/2 监听器上。
- 开启了 gRPC 的服务器组只支持以下转发规则:规则中指定的转发动作为“转发至”。
|
健康检查 | 健康检查功能默认开启。在服务器组关联到 ALB 实例后,ALB 按照指定规则对服务器组内的后端服务器发起健康检查请求,以监测后端服务器的健康状态。
您可以按需关闭健康检查功能。但是,如果该功能被关闭,ALB 将无法判断后端服务器的健康状态并自动移除异常的后端服务器。 注意 健康检查功能开启时,会存在一些默认的健康检查配置。请您对这些默认配置进行检查以确保配置符合您的预期。您也可以按需调整配置。 |
健康检查模板 | 设置健康检查模板。您可以选择已经创建的健康检查模板,也可以选择自定义健康检查。 |
健康检查协议 | 当您将健康检查模板设置为自定义健康检查时,需配置健康检查协议。
当前支持 HTTP 和 TCP 协议: - HTTP:ALB 向后端服务器发送 GET 或 HEAD 请求,然后根据 HTTP 响应码来判断后端服务器是否健康。如果后端服务器返回正常状态码,则认为后端服务器健康。
- TCP:ALB 尝试与后端服务器建立 TCP 连接,然后根据 TCP 三次握手的结果来判断后端服务器是否健康。如果 TCP 三次握手成功完成,则认为后端服务器健康。
健康检查协议不同,需要配置的其他健康检查参数也会存在差异,具体见下文“其他健康检查配置”。 |
其他健康检查配置(健康检查协议为 HTTP) | 健康检查协议为 HTTP 时,需设置以下健康检查参数: - 健康检查端口:指定健康检查使用的端口。ALB 默认使用后端服务器端口进行健康检查。您也可以指定一个端口用于健康检查。
- 协议版本:指定健康检查协议的版本。协议版本包括 HTTP1.0 和 HTTP1.1。
- 健康检查方法:指定健康检查使用的请求方法。
- GET:后端服务器响应请求时会返回 HTTP 响应头和响应体。
- HEAD:后端服务器响应请求时仅返回 HTTP 响应头。
- 健康检查域名:输入健康检查请求的域名。输入规则如下:
- 只允许字母、 数字、半角句号(.)和连字符(-)。
- 须至少包含一个半角句号(.),但不能以半角句号(.)作为开头和结尾。域名的每一级不能以连字符(-)开头或结尾。
- 最多允许 128 个字符。
- 必须是符合域名规范的精确域名, 如:www.test.com。暂不支持泛域名。
注意 - 协议版本是 HTTP1.0 时:如果您未指定域名,ALB 默认使用后端服务器的私网 IP 地址作为健康检查的目标地址,且不会携带 Host 头部。
- 协议版本是 HTTP1.1 时:必须指定一个域名。
- 健康检查路径:输入健康检查请求的路径。默认值是
/ ,表示根目录。输入规则如下:
- 必须以斜杠
/ 开头。 - 最多允许 128 个字符。
- 只允许字母、数字和以下特殊字符:-_ / . % ? # & =。
- 正常状态码:选择表示健康检查成功的状态码。您可以勾选以下选项中的一个或多个:2XX、3XX、4XX 和 5XX。其中,2XX 和 3XX 已默认勾选。
- 当实际响应状态码在您选择的状态码区间内时,表示健康检查成功、服务器状态正常。
- 当实际响应状态码不在您选择的状态码区间内时,表示健康检查失败、服务器状态异常。
- 举例:如果您未勾选 4XX,当后端服务器返回的状态码落在 4XX 区间内时,ALB 将判定此次健康检查失败。
- 响应超时:设置响应超时时间。
- 在指定时间内,如果 ALB 没有收到后端服务器的响应,则判定为响应超时、健康检查失败。
- 默认响应超时时间为 2 秒。超时时间的取值范围为 1~60 秒。
- 检测间隔:设置发起健康检查请求的时间间隔。
- 默认间隔为 2 秒,指每 2 秒对后端服务器进行一次健康检查。
- 检测间隔的取值范围是 1~300 秒。建议您根据业务需求合理设置检测间隔,避免频繁的健康检查请求给后端服务器带来性能压力。
- 健康阈值:设置健康阈值,即连续健康检查成功的次数上限。达到这个阈值,ALB 判定后端服务器恢复正常,会继续将请求转发给这台后端服务器。
- 健康阈值默认为 3 次,指连续 3 次健康检查请求成功,才能判定后端服务器状态健康。
- 健康阈值的取值范围为 2~10 次。
- 不健康阈值:设置不健康阈值,即连续健康检查失败的次数上限。达到这个阈值,ALB 判定后端服务器异常,将不会把请求转发给这台后端服务器。
- 不健康阈值默认为 3 次,指连续 3 次健康检查请求失败,才能判定后端服务器状态异常。
- 不健康阈值的取值范围为 2~10 次。
|
其他健康检查配置(健康检查协议为 TCP) | 健康检查协议为 TCP 时,您需要设置以下健康检查参数: - 健康检查端口:指定健康检查使用的端口。ALB 默认使用后端服务器端口进行健康检查。您也可以指定一个端口用于健康检查。
- 响应超时:设置响应超时时间。
- 在指定时间内,如果 ALB 没有收到后端服务器的响应,则判定为响应超时、健康检查失败。
- 默认响应超时时间为 2 秒。超时时间的取值范围为 1~60 秒。
- 检测间隔:设置发起健康检查请求的时间间隔。
- 默认间隔为 2 秒,指每 2 秒对后端服务器进行一次健康检查。
- 检测间隔的取值范围是 1~300 秒。建议您根据业务需求合理设置检测间隔,避免频繁的健康检查请求给后端服务器带来性能压力。
- 健康阈值:设置健康阈值,即连续健康检查成功的次数上限。达到这个阈值,ALB 判定后端服务器恢复正常,会继续将请求转发给这台后端服务器。
- 健康阈值默认为 3 次,指连续 3 次健康检查请求成功,才能判定后端服务器状态健康。
- 健康阈值的取值范围为 2~10 次。
- 不健康阈值:设置不健康阈值,即连续健康检查失败的次数上限。达到这个阈值,ALB 判定后端服务器异常,将不会把请求转发给这台后端服务器。
- 不健康阈值默认为 3 次,指连续 3 次健康检查请求失败,才能判定后端服务器状态异常。
- 不健康阈值的取值范围为 2~10 次。
|
会话保持 | 可选。设置会话保持功能。ALB 提供基于 Cookie 的会话保持功能,可以将来自同一个客户端的请求转发到同一台后端服务器。
开启会话保持功能后,您还需要设置会话保持模式: 关于会话保持功能的详细介绍,请参见基于 Cookie 的会话保持。 注意 会话保持的优先级高于调度算法。例如,如果您为服务器组设置了源地址哈希作为调度算法,同时为其开启了会话保持功能,ALB 将忽略源地址哈希算法。该情形下: - 对于客户端发起的第一个请求,ALB 默认根据加权轮询算法来选择后端服务器。
- 该客户端发起的后续请求将始终被转发到同一台后端服务器。
如果您希望通过源地址哈希算法,将来自相同客户端的请求转发到特定的某个后端服务器,请勿开启会话保持。 |
描述 | 可选。输入服务器组的描述信息。 |
项目 | 为服务器组选择一个项目。项目是火山引擎提供的一种资源管理方式。基于项目,您可以对云资源进行分组管理。
如果您没有选择项目,服务器组将默认加入 default 项目。 |
标签 | 可选。为服务器组设置标签。标签用于标记资源,使您能够对资源进行分类和聚合管理。一个标签由一个标签键(Key)和一个标签值(Value)组成。
您可以直接选择已有的标签或者输入标签键和标签值。当您输入了一个标签键或者标签值之后,你还需要单击该标签键或标签值来进行确认。
设置标签时,请您注意以下事项: - 标签键和标签值只能包含汉字、英文大小写字母、数字、空格和特殊字符_.:/=+-@。
- 标签键不能以
volc: 和sys: 开头,也不能以volc: 和sys: 的任意大小写形式开头。 - 设置标签键和标签值时须区分英文大小写。
- 标签键不能为空,标签值可以为空。
- 单个服务器组最多可以绑定 50 个标签。一次最多可以添加 20 个标签。
- 如果一个服务器组需要绑定多个标签,标签键不能相同。
关于如何使用标签来管理 ALB 资源的更多信息,请参考详见使用标签来管理ALB资源。 |
后续操作
创建完服务器组后,您可以接着执行以下操作:添加后端服务器。
删除服务器组
如果您不再需要使用某个服务器组,可以将其删除。服务器组被删除后,后端服务器与服务器组的关联关系被解除,但是后端服务器不会被删除。
前提条件
在删除一个服务器组前,请先解除与该服务器组关联的所有监听器。具体操作,请参考修改与删除转发规则。
操作步骤
- 登录应用型负载均衡控制台。
- 在左侧导航栏,单击 服务器组,进入 服务器组 页面。
- 在 服务器组 页面,找到待删除的服务器组,单击 操作 列的 删除。
- 在弹出的对话框中,确认提示信息, 然后单击 删除。
添加后端服务器
创建服务器组后,您需要在服务器组中添加后端服务器来处理请求。一个后端服务器可以被添加到多个服务器组中。
添加服务器类型的后端服务器
操作步骤
登录应用型负载均衡控制台。
在左侧导航栏,单击 服务器组,进入 服务器组 页面。
在 服务器组 页面,找到待添加后端服务器的服务器组,然后单击 操作 列的 添加后端服务器。
在 选择后端服务器 页面,勾选待添加的后端服务器,然后单击 下一步:配置端口和权重。
该页面展示了与后端服务器组处于同一 VPC 的云服务器 ECS 实例。您可以使用 ECS 实例的名称、ID 或 私网 IP 地址来快速搜索到目标 ECS 实例。
说明
- 当前 ALB 仅支持 IPv4 后端服务器。
- 后端服务器的安全组规则必须放通 100.64.0.0/10 网段,否则会导致业务请求及健康检查异常。更多信息,请参见配置后端服务器安全组。
- 在该页面上开启高级模式后,您可以选择 ECS 实例挂载的辅助网卡作为后端服务器。可根据实际情况选择一个或多个辅助网卡的 IP 地址。如果使用辅助网卡作为后端服务器,您需要手动配置网卡路由,使后端服务器能够响应来自客户端或 ALB 实例的请求。更多信息,请参见配置辅助网卡路由。
在 配置端口和权重 页面,设置后端服务器的端口和权重,然后单击 确定。
配置项 | 描述 |
---|
端口 | 配置后端服务器的端口。后端服务器使用该端口来提供服务和接收请求。取值范围为 1~65535。 |
权重 | 配置后端服务器的权重。默认值为 100。取值范围为 0~100。 - 权重决定了流量分配比例。单个后端服务器接收到的请求的比例 = 该后端服务器权重/该服务器组中所有后端服务器权重的总和。
- 权重越大的后端服务器接收到的请求越多。若后端服务器的权重为 0,ALB 将不会把请求转发给该后端服务器。
- 当服务器组应用的调度算法为源地址哈希时,ALB 将不再依据权重值转发请求。
|
复制 | 可选。单击 复制 来复制一个已添加的后端服务器条目。复制后,请在新的条目中输入不同的端口号。这种方式允许 ALB 将请求转发到同一后端服务器的不同端口。 |
移除 | 可选。单击 移除 来移除添加的后端服务器。 |
添加 IP 类型的后端服务器
操作步骤
登录应用型负载均衡控制台。
在左侧导航栏,单击 服务器组,进入 服务器组 页面。
在 服务器组 页面,找到待添加后端服务器的服务器组,然后单击 操作 列的 添加后端服务器。
在 添加IP地址 页面,添加 IP 地址。
该页面上展示了此服务器组所属的 VPC 的 ID 和网段。
您可以根据实际情况对添加的 IP 地址进行配置,相关参数解释请参考下表。
配置项 | 描述 |
---|
IP地址 | 输入作为后端服务器的 IP 地址。 - 如果您添加的是与服务器组在同一 VPC 的 ECS 实例的辅助网卡 IP 地址,您还需要配置辅助网卡路由,使网卡能够响应来自客户端或者 ALB 实例的请求。
- 如果您添加的 IP 地址不在服务器组所属 VPC 的网段范围内,您还需要配置中转路由器和 VPC 路由,具体可参见ALB跨VPC挂载后端服务器。
说明 - 当前 ALB 仅支持 IPv4 后端服务器。
- 后端服务器的安全组规则必须放通 100.64.0.0/10 网段,否则会导致业务请求及健康检查异常。更多信息,请参见配置后端服务器安全组。
|
远端IP | 配置“远端IP”功能。 - 如果您添加的 IP 地址不在服务器组所属 VPC 的网段范围内,必须开启“远端IP”功能。
- 如果您添加的 IP 地址在服务器组所属 VPC 的网段范围内,无需开启“远端IP”功能。
|
端口 | 配置后端服务器的端口。后端服务器使用该端口来提供服务和接收请求。取值范围为 1~65535。 |
权重 | 配置后端服务器的权重。默认值为 100。取值范围为 0~100。 - 权重决定了流量分配比例。单个后端服务器接收到的请求的比例 = 该后端服务器权重/该服务器组中所有后端服务器权重的总和。
- 权重越大的后端服务器接收到的请求越多。若后端服务器的权重为 0,ALB 将不会把请求转发给该后端服务器。
- 当服务器组应用的调度算法为源地址哈希时,ALB 将不再依据权重值转发请求。
|
添加端口 | 可选。单击 添加端口 来添加更多端口。这种方式允许 ALB 将请求转发到同一后端服务器的不同端口。 |
移除 | 可选。单击 移除 来移除添加的后端服务器。 |
确认配置信息无误后,单击 确定。
移除后端服务器
您可以按需移除服务器组内的后端服务器。后端服务器被移除后,ALB 不再将客户端请求转发给该后端服务器。
操作步骤
- 登录应用型负载均衡控制台。
- 在左侧导航栏,单击 服务器组,进入 服务器组 页面。
- 在 服务器组 页面,单击待移除后端服务器的服务器组的 ID。
- 单击 后端服务器 页签。
- 找到待删除的后端服务器,单击 操作 列的 移除。
- 在弹出的对话框中,确认提示信息,然后单击 删除。
