ALB 是表示负载均衡器的自定义资源。alb-operator 默认嵌入在所有集群中,负责监听 ALB 资源的创建/更新/删除操作,并据此创建相应的 Deployment 和 Service。
对于每个 ALB,会有一个对应的 Deployment 监听所有附加到该 ALB 的 Frontends 和 Rules,并根据这些配置将请求路由到后端。
负载均衡器 的高可用性需要 VIP。请参考 配置 VIP。
ALB 配置包含三部分。
资源相关字段描述 alb 的部署配置。
字段 | 类型 | 描述 |
---|---|---|
.spec.config.nodeSelector | map[string]string | alb 的节点选择器 |
.spec.config.replicas | int,可选,默认 3 | alb 的副本数 |
.spec.config.resources.limits | k8s 容器资源,可选 | alb 中 nginx 容器的资源限制 |
.spec.config.resources.requests | k8s 容器资源,可选 | alb 中 nginx 容器的资源请求 |
.spec.config.resources.alb.limits | k8s 容器资源,可选 | alb 中 alb 容器的资源限制 |
.spec.config.resources.alb.requests | k8s 容器资源,可选 | alb 中 alb 容器的资源请求 |
.spec.config.antiAffinityKey | string,可选,默认 local | k8s 反亲和性键 |
网络字段描述如何访问 ALB。例如,在 host
模式下,alb 使用 hostnetwork,可以通过节点 IP 访问 ALB。
字段 | 类型 | 描述 |
---|---|---|
.spec.config.networkMode | string: host 或 container ,可选,默认 host | 在 container 模式下,operator 会创建一个 LoadBalancer Service,并使用其地址作为 ALB 地址。 |
.spec.address | string,必填 | 可以手动指定 alb 的地址 |
.spec.config.vip.enableLbSvc | bool,可选 | 在 container 模式下自动为 true。 |
.spec.config.vip.lbSvcAnnotations | map[string]string,可选 | LoadBalancer Service 的额外注解。 |
字段 | 类型 |
---|---|
.spec.config.projects | []string,必填 |
.spec.config.portProjects | string,可选 |
.spec.config.enablePortProject | bool,可选 |
将 ALB 添加到项目意味着:
如果启用端口项目并为项目分配端口范围,则意味着:
alb cr 中有一些全局配置可以调整。
Web UI 中暴露了一些常用配置。创建负载均衡器的步骤如下:
进入 Administrator。
在左侧边栏点击 Network Management > Load Balancer。
点击 Create Load Balancer。
Web UI 中的每个输入项对应 CR 的一个字段:
参数 | 描述 |
---|---|
Assigned Address | .spec.address |
Allocated By | Instance 表示项目模式,可选择下方项目;port 表示端口项目模式,创建 alb 后可分配端口范围 |
更新负载均衡器会导致 3 到 5 分钟的服务中断,请选择合适的时间进行操作!
进入 Administrator。
在左侧导航栏点击 Network Management > Load Balancer。
点击 ⋮ > Update。
根据需要更新网络和资源配置。
请根据业务需求合理设置规格。也可参考相关文档 如何合理分配 CPU 和内存资源 进行指导。
内部路由 仅支持从 Disabled 状态更新为 Enabled 状态。
点击 Update。
删除负载均衡器后,相关端口和规则也会被删除且无法恢复。
进入 Administrator。
在左侧导航栏点击 Network Management > Load Balancer。
点击 ⋮ > Delete,并确认。
Frontend 是定义 ALB 监听端口和协议的自定义资源。 支持的协议:L7(http|https|grpc|grpcs)和 L4(tcp|udp)。 L4 代理直接使用 frontend 配置后端服务。 L7 代理使用 frontend 配置监听端口,使用 rule 配置后端服务。 如果需要添加 HTTPS 监听端口,还应联系管理员为当前项目分配 TLS 证书以实现加密。
先创建一个 ALB。
alb 标签:必填,表示该 Frontend
所属的 ALB 实例。
frontend 名称:格式为 $alb_name-$port
。
port:监听的端口。
protocol:该端口使用的协议。
certificate_name:用于 grpcs 和 https 协议的默认证书,格式为 $secret_ns/$secret_name
。
backendProtocol:后端服务使用的协议。
默认 serviceGroup
:
serviceGroup
。进入 Container Platform。
在左侧导航栏点击 Network > Load Balancing。
点击负载均衡器名称进入详情页。
点击 Add Port。
Web UI 中的每个输入项对应 CR 的字段:
参数 | 描述 |
---|---|
Session Affinity | .spec.serviceGroup.session_affinity_policy |
对于 HTTP、gRPC 和 HTTPS 端口的流量,除了默认的内部路由组外,还可以设置更多多样化的后端服务匹配 规则。负载均衡器会先根据设置的规则匹配对应的后端服务;若规则匹配失败,则匹配上述内部路由组对应的后端服务。
可以点击列表页右侧的 ⋮ 图标,或详情页右上角的 Actions,根据需要更新默认路由或删除监听端口。
如果负载均衡器的资源分配方式为 Port,只有管理员可以在 Administrator 视图中删除相关监听端口。
结合日志和监控数据,可以快速定位和解决负载均衡器问题。
进入 Administrator。
在左侧导航栏点击 Network Management > Load Balancer。
点击 负载均衡器名称。
在 Logs 标签页,从容器视角查看负载均衡器运行日志。
负载均衡器所在集群必须部署监控服务。
进入 Administrator。
在左侧导航栏点击 Network Management > Load Balancer。
点击 负载均衡器名称。
在 Monitoring 标签页,从节点视角查看负载均衡器的指标趋势信息。
使用率:负载均衡器在当前节点的 CPU 和内存实时使用情况。
吞吐量:负载均衡器实例的整体进出流量。
更多监控指标的详细信息请参考 ALB 监控。