配置负载均衡器
负载均衡器是一种将流量分发到容器实例的服务。借助负载均衡功能,它会自动为计算组件分配访问流量,并将其转发到这些组件的容器实例。负载均衡可以提升计算组件的故障容忍能力,扩展这些组件对外提供服务的能力,并增强应用的可用性。
平台管理员可以为平台上的任意集群创建单点或高可用负载均衡器,并统一管理和分配负载均衡器资源。例如,可以将负载均衡分配给项目,从而确保只有具备相应项目权限的用户才能使用负载均衡。
有关本节相关概念的说明,请参见下表。
目录
前提条件ALB2 自定义资源(CR)示例通过 Web 控制台创建负载均衡器通过 CLI 创建负载均衡器通过 Web 控制台更新负载均衡器通过 Web 控制台删除负载均衡器通过 CLI 删除负载均衡器配置监听端口(Frontend)前提条件Frontend 自定义资源(CR)示例通过 Web 控制台创建监听端口(Frontend)通过 CLI 创建监听端口(Frontend)后续操作相关操作配置规则Rule 自定义资源(CR)示例dslx通过 Web 控制台创建规则通过 CLI 创建规则日志与监控查看日志监控指标更多资源前提条件
Load Balancer 的高可用需要 VIP。请参见 Configure VIP。
ALB2 自定义资源(CR)示例
- 当
enableLbSvc为 true 时,会为负载均衡器的访问地址创建一个内部 LoadBalancer 类型的服务。lbSvcAnnotations为 LoadBalancer 类型服务注解的配置参考。 - 请参见下方的网络模式配置。
- 请参见下方的资源分配方式。
- 请参见下方的分配项目。
- 请参见下方的规格。
通过 Web 控制台创建负载均衡器
-
进入 Platform Management。
-
在左侧边栏中,单击 Network Management > Load Balancer。
-
单击 Create Load Balancer。
-
按照以下说明完成网络配置。
-
按照以下说明完成资源配置。
-
单击 Create。创建过程需要一些时间,请耐心等待。
通过 CLI 创建负载均衡器
通过 Web 控制台更新负载均衡器
更新负载均衡器会导致 3 到 5 分钟的服务中断,请选择合适的时间执行此操作!
-
进入 Platform Management。
-
在左侧导航栏中,单击 Network Management > Load Balancer。
-
单击 ⋮ > Update。
-
根据需要更新网络和资源配置。
-
请根据业务需求合理设置规格。也可以参考相关文档 How to properly allocate CPU and memory resources。
-
Internal routing 仅支持从 Disabled 状态更新为 Enabled 状态。
-
-
单击 Update。
通过 Web 控制台删除负载均衡器
删除负载均衡器后,关联的端口和规则也会被删除,且无法恢复。
-
进入 Platform Management。
-
在左侧导航栏中,单击 Network Management > Load Balancer。
-
单击 ⋮ > Delete,并确认。
通过 CLI 删除负载均衡器
配置监听端口(Frontend)
负载均衡器支持通过监听端口及其对应协议接收客户端连接请求,包括 HTTPS、HTTP、gRPC、TCP 和 UDP。
前提条件
如果需要新增 HTTPS 监听端口,还应联系管理员为当前项目分配 TLS 证书用于加密。
Frontend 自定义资源(CR)示例
- 必填,表示此
Frontend所属的 ALB 实例。 - 格式为
$alb_name-$port。 - 格式为
$secret_ns/$secret_name。 - 此
Frontend本身的协议。http|https|grpc|grpcs用于 l7 proxy。tcp|udp用于 l4 proxy。
- 对于 l4 proxy,
serviceGroup为必填。对于 l7 proxy,serviceGroup为可选。当请求到达时,ALB 会先尝试将其与该Frontend关联的规则进行匹配。只有当请求未匹配任何规则时,ALB 才会将其转发到Frontend配置中指定的默认serviceGroup。 weight配置适用于 Round Robin 和 Weighted Round Robin 调度算法。
ALB 监听 ingress 并自动创建 Frontend 或 Rule。source 字段定义如下:
spec.source.type目前仅支持ingress。spec.source.name为 ingress 名称。spec.source.namespace为 ingress 命名空间。
通过 Web 控制台创建监听端口(Frontend)
-
进入 Container Platform。
-
在左侧导航栏中,单击 Network > Load Balancing。
-
单击负载均衡器名称,进入详情页。
-
单击 Add Listener Port。
-
参考以下说明配置相关参数。
-
单击 OK。
通过 CLI 创建监听端口(Frontend)
后续操作
对于来自 HTTP、gRPC 和 HTTPS 端口的流量,除了默认的内部路由组外,还可以设置更丰富的后端服务匹配规则。负载均衡器会首先根据已设置的规则匹配对应的后端服务;如果规则匹配失败,则再匹配上述内部路由组对应的后端服务。
相关操作
您可以单击列表页右侧的 ⋮ 图标,或在详情页右上角单击 Actions,按需更新默认路由或删除监听端口。
如果负载均衡器的资源分配方式为 Port,则只有管理员可以在 Platform Management 视图中删除相关监听端口。
配置规则
为 HTTPS、HTTP 和 gRPC 协议的监听端口添加转发规则。负载均衡器会根据这些规则匹配后端服务。
TCP 和 UDP 协议不能添加转发规则。
Rule 自定义资源(CR)示例
- 必填,表示此规则所属的
Frontend。 - 必填,表示此规则所属的 ALB。
- 与
Frontend相同。 - 与
Frontend相同。 - 数值越小,优先级越高。
- 与
Frontend相同。
dslx
dslx 是一种领域特定语言,用于描述匹配条件。
例如,下面的规则会匹配满足以下所有条件的请求:
- URL 以 /app-a 或 /app-b 开头
- method 为 post
- URL 参数 group 为 vip
- host 为 *.app.com
- header 的 location 为 east-1 或 east-2
- cookie 名称为 uid
- 源 IP 来自 1.1.1.1-1.1.1.100
通过 Web 控制台创建规则
-
进入 Container Platform。
-
在左侧导航栏中,单击 Network > Load Balancing。
-
单击负载均衡器名称。
-
单击监听端口名称。
-
单击 Add Rule。
-
参考以下说明配置相关参数。
-
单击 Add。
通过 CLI 创建规则
日志与监控
通过结合可视化日志和监控数据,可以快速定位并解决负载均衡器的故障或问题。
查看日志
-
进入 Platform Management。
-
在左侧导航栏中,单击 Network Management > Load Balancer。
-
单击 Load Balancer Name。
-
在 Logs 选项卡中,从容器视角查看负载均衡器运行时日志。
监控指标
负载均衡器所在的集群必须部署监控服务。
-
进入 Platform Management。
-
在左侧导航栏中,单击 Network Management > Load Balancer。
-
单击 Load Balancer Name。
-
在 Monitoring 选项卡中,从节点视角查看负载均衡器的指标趋势信息。
-
Usage Rate:当前节点上负载均衡器对 CPU 和内存的实时使用情况。
-
Throughput:负载均衡器实例的总入站和出站流量。
-