负载均衡器是一种将流量分发到容器实例的服务。通过利用负载均衡功能,它会自动分配计算组件的访问流量,并将其转发到这些组件的容器实例。负载均衡能够提升计算组件的容错能力,扩展这些组件的外部服务能力,并增强应用的可用性。
平台管理员可以为平台上的任意集群创建单点或高可用负载均衡器,并统一管理和分配负载均衡器资源。例如,可以将负载均衡分配给项目,确保只有具有相应项目权限的用户才能使用负载均衡。
本节相关概念说明请参见下表。
参数 | 说明 |
---|---|
Load Balancer | 一种将网络请求分发到集群中可用节点的软件或硬件设备。平台中使用的负载均衡器是七层(Layer 7)软件负载均衡器。 |
VIP | 虚拟IP地址(Virtual IP Address),指不对应具体计算机或具体网卡的IP地址。当负载均衡器为高可用类型时,访问地址应为VIP。 |
Load Balancer 的高可用需要 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
表示七层代理。tcp|udp
表示四层代理。serviceGroup
必填;七层代理时,serviceGroup
可选。当请求到达时,ALB 会先尝试匹配与该 Frontend
关联的规则,只有当请求不匹配任何规则时,才会转发到 Frontend
配置的默认 serviceGroup
。weight
配置适用于轮询和加权轮询调度算法。ALB 监听 ingress 并自动创建 Frontend
或 Rule。source
字段定义如下:
spec.source.type
目前仅支持 ingress
。spec.source.name
为 ingress 名称。spec.source.namespace
为 ingress 命名空间。进入 容器平台。
在左侧导航栏点击 网络 > 负载均衡。
点击负载均衡器名称进入详情页。
点击 添加监听端口。
参考以下说明配置相关参数。
参数 | 说明 |
---|---|
协议 | 支持的协议包括 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为最高优先级,默认优先级为5。 当多个规则同时满足时,优先选择优先级更高的规则;若优先级相同,则使用系统默认匹配规则。 |
跨域资源共享(CORS) | CORS(跨域资源共享)是一种机制,通过额外的 HTTP 头指示浏览器,允许运行在一个源(域)上的 Web 应用访问来自不同源服务器的指定资源。当资源请求另一个不同域、协议或端口的服务器资源时,发起跨域 HTTP 请求。 |
允许的来源 | 用于指定允许访问的来源。
|
允许的请求头 | 用于指定 CORS 中允许的 HTTP 请求头,避免不必要的预检请求,提高请求效率。示例条目如下: 注意:其他常用或自定义请求头未一一列出,请根据实际情况填写。
|
点击 添加。
结合可视化日志和监控数据,可快速定位并解决负载均衡器的问题或故障。
进入 管理员。
在左侧导航栏点击 网络管理 > 负载均衡器。
点击 负载均衡器名称。
在 日志 标签页,从容器视角查看负载均衡器运行日志。
负载均衡器所在集群必须部署监控服务。
进入 管理员。
在左侧导航栏点击 网络管理 > 负载均衡器。
点击 负载均衡器名称。
在 监控 标签页,从节点视角查看负载均衡器的指标趋势信息。
使用率:负载均衡器在当前节点的 CPU 和内存实时使用情况。
吞吐量:负载均衡器实例的整体进出流量。