负载均衡器是一种将流量分配到容器实例的服务。通过利用负载均衡功能,它可以自动分配计算组件的访问流量,并将其转发到这些组件的容器实例。负载均衡能够提高计算组件的容错能力,扩展这些组件的外部服务能力,并增强应用程序的可用性。
平台管理员可以为平台上的任何集群创建单点或高可用性负载均衡器,并统一管理和分配负载均衡器资源。例如,负载均衡可以分配给项目,确保只有拥有适当项目权限的用户才能使用负载均衡。
请参考下表以获取本节相关概念的解释。
参数 | 描述 |
---|---|
负载均衡器 | 一种将网络请求分配到集群中可用节点的软件或硬件设备。平台使用的负载均衡器是一个第七层软件负载均衡器。 |
VIP | 虚拟IP地址(Virtual IP Address)是一个不对应于特定计算机或特定网络接口卡的IP地址。当负载均衡器为高可用性类型时,访问地址应为VIP。 |
负载均衡器的高可用性需要一个VIP。请参阅配置VIP。
enableLbSvc
为 true 时,将为负载均衡器的访问地址创建一种内部 LoadBalancer 类型服务。
lbSvcAnnotations
配置参考 LoadBalancer 类型服务注解。导航到 平台管理。
在左侧边栏中,单击 网络管理 > 负载均衡器。
单击 创建负载均衡器。
按照下列说明完成网络配置。
参数 | 描述 |
---|---|
网络模式 |
|
服务和注解(Alpha) |
|
访问地址 | 负载均衡的访问地址,即负载均衡器实例的服务地址。负载均衡器创建成功后,可以通过此地址访问。
|
按照下列说明完成资源配置。
参数 | 描述 |
---|---|
规格 | 请根据业务需求合理设置规格。您也可以参考如何合理分配 CPU 和内存资源进行参考。 |
部署类型 |
|
副本数量 | 副本数量为负载均衡器的容器组数量。 提示:为确保负载均衡器的高可用性,建议副本数量不少于 3。 |
节点标签 | 使用标签过滤节点以部署负载均衡器。 提示:
|
资源分配方式 |
|
分配项目 |
|
单击 创建。创建过程将需要一些时间,请耐心等待。
更新负载均衡器将导致 3 到 5 分钟的服务中断。请在适当的时间进行此操作!
进入 平台管理。
在左侧导航栏中,单击 网络管理 > 负载均衡器。
单击 ⋮ > 更新。
根据需要更新网络和资源配置。
请根据业务需求合理设置规格。您也可以参考相关的如何合理分配 CPU 和内存资源进行指导。
内部路由 仅支持从 禁用 状态更新到 启用 状态。
单击 更新。
删除负载均衡器后,相关的端口和规则也将被删除,无法恢复。
进入 平台管理。
在左侧导航栏中,单击 网络管理 > 负载均衡器。
单击 ⋮ > 删除,并确认。
负载均衡器支持通过监听端口和相应协议接收客户端连接请求,包括 HTTPS、HTTP、gRPC、TCP 和 UDP。
如果需要添加 HTTPS 监听端口,您还应联系管理员为当前项目分配 TLS 证书以进行加密。
Frontend
所属的 ALB 实例。$alb_name-$port
。$secret_ns/$secret_name
。Frontend
本身的协议。
http|https|grpc|grpcs
用于 l7 代理。tcp|udp
用于 l4 代理。serviceGroup
是必需的。对于 l7 代理,serviceGroup
是可选的。当请求到达时,ALB 将首先尝试将其与此 Frontend
关联的规则进行匹配。只有当请求不匹配任何规则时,ALB 才会将其转发到 Frontend
配置中指定的默认 serviceGroup
。weight
配置适用于轮询和加权轮询调度算法。ALB 监听入口并自动创建 Frontend
或规则。source
字段定义如下:
spec.source.type
当前仅支持 ingress
。spec.source.name
是入口名称。spec.source.namespace
是入口命名空间。进入 容器平台。
在左侧导航栏中,单击 网络 > 负载均衡。
单击负载均衡器的名称以进入详细信息页面。
单击 添加监听端口。
根据以下说明配置相关参数。
参数 | 描述 |
---|---|
协议 | 支持的协议包括 HTTPS、HTTP、gRPC、TCP 和 UDP。选择 HTTPS 时,必须添加证书;对于 gRPC 协议,添加证书是可选的。 注意:
|
内部路由组 | - 当负载均衡算法设置为 轮询(RR) 时,流量将按内部路由组的顺序分配到内部路由端口。 - 当负载均衡算法设置为 加权轮询(WRR) 时,权重值较高的内部路由被选中的概率更高;流量将根据配置的 weight 分配到内部路由端口。 提示:概率计算为当前权重值与所有权重值之和的比率。 |
会话保持 | 始终将特定请求转发到与上述内部路由组对应的后端服务。 特定请求包括(选择一个):
|
后端协议 | 用于将流量转发到后端服务的协议。例如,如果转发到后端 Kubernetes 或 dex 服务,则必须选择 HTTPS 协议。 |
单击 确定。
对于来自 HTTP、gRPC 和 HTTPS 端口的流量,除了默认的内部路由组外,您可以设置更多不同的后端服务匹配规则。负载均衡器将根据设置的规则初步匹配相应的后端服务;如果规则匹配失败,则将匹配与上述内部路由组对应的后端服务。
您可以单击列表页面右侧的 ⋮ 图标或单击详细信息页面右上角的 操作 来根据需要更新默认路由或删除监听端口。
如果负载均衡器的资源分配方式为 端口,则只有管理员可以在 平台管理 视图中删除相关监听端口。
为 HTTPS、HTTP 和 gRPC 协议的监听端口添加转发规则。负载均衡器将根据这些规则匹配后端服务。
TCP 和 UDP 协议无法添加转发规则。
Frontend
。Frontend
相同。Frontend
相同。Frontend
相同。dslx 是一种领域特定语言,用于描述匹配标准。
例如,以下规则匹配满足以下所有条件的请求:
进入 容器平台。
单击左侧导航栏中的 网络 > 负载均衡。
单击负载均衡器的名称。
单击监听端口的名称。
单击 添加规则。
根据以下描述配置相关参数。
参数 | 描述 |
---|---|
内部路由组 | - 当负载均衡算法选择 轮询(RR) 时,访问流量将按内部路由组的顺序分配到内部路由端口。 - 当负载均衡算法选择 加权轮询(WRR) 时,内部路由的权重值越高,被轮询的概率越高,访问流量将根据根据配置的 weight 计算的概率分配到内部路由端口。 提示:概率的计算方法为当前权重值与所有权重值之和的比率。 |
规则 | 指负载均衡器匹配后端服务的标准,包括规则指标及其值。不同规则指标之间的关系为“与”。
|
会话保持 | 始终将特定访问请求转发到与上述内部路由组对应的后端服务。 特定访问请求指(选择一个):
|
URL 重写 | 将访问地址重写为平台后端服务的地址。此功能要求配置 URL 的 StartsWith 规则指标,并且重写地址(rewrite-target)必须以 / 开头。 例如:设置域名为 bar.example.com,URL 的起始路径为 / ,启用 URL 重写 功能并将重写地址设置为 */test* 。访问 bar.example.com 将重写 URL 为 bar.example.com/test。 |
后端协议 | 用于将访问流量转发到后端服务的协议。例如:如果转发到后端的 Kubernetes 或 dex 服务,则选择 HTTPS 协议。 |
重定向 | 将访问流量转发到新的重定向地址,而不是与内部路由组对应的后端服务。 例如:当原访问地址的页面升级或更新时,为了避免用户收到 404 或 503 错误页面,可以通过配置将流量重定向到新地址。
|
规则优先级 | 规则匹配的优先级:共有 10 个级别,从 1 到 10,1 为最高优先级,默认优先级为 5。 当同时满足两个或多个规则时,选择优先级更高的规则进行应用;如果优先级相同,系统使用默认匹配规则。 |
跨域资源共享 (CORS) | CORS(跨域资源共享)是一种机制,利用额外的 HTTP 头部指示浏览器允许在一个源(域)上运行的 Web 应用程序访问来自不同源服务器的指定资源。当资源请求另一个资源,该资源来自与其自身不同的域、协议或端口的服务器时,它会发起跨域 HTTP 请求。 |
允许的来源 | 用于指定允许访问的来源。
|
允许的头部 | 用于指定 CORS(跨域资源共享)中允许的 HTTP 请求头,以避免不必要的预检请求并提高请求效率。示例条目如下: 注意:其他常用或自定义请求头不会逐一列出;请根据实际情况填写。
|
单击 添加。
通过结合可视化日志和监控数据,可以快速识别和解决负载均衡器的问题或故障。
进入 平台管理。
在左侧导航栏中,单击 网络管理 > 负载均衡器。
单击 负载均衡器名称。
在 日志 选项卡中,从容器的角度查看负载均衡器运行时的日志。
负载均衡器所在的集群必须部署监控服务。
进入 平台管理。
在左侧导航栏中,单击 网络管理 > 负载均衡器。
单击 负载均衡器名称。
在 监控 选项卡中,从节点的角度查看负载均衡器的指标趋势信息。
使用率:负载均衡器在当前节点上 CPU 和内存的实时使用情况。
吞吐量:负载均衡器实例的整体进出流量。