Kube-OVN Underlay + MetalLB 负载均衡器 Service 配置
目录
概述前提条件环境要求流量流程配置步骤1. 使用 VLAN 子接口配置 ProviderNetwork2. 配置 Kube-OVN Controller 参数3. 配置 Underlay subnet 外部地址特性4. 创建 MetalLB 外部地址池5. 创建示例原生应用和 LoadBalancer Service6. 验证配置7. 迁移现有 Service概述
此方案用于将 MetalLB L2 模式与 Kube-OVN Underlay 网络集成。它允许用户将 Underlay subnet IP 作为 MetalLB 负载均衡器 Service VIP,并将流量直接转发到后端业务 Pod。
⚠️ 关键:负载均衡器 VIP 与后端 Pod IP 必须位于同一个 Underlay subnet 中。
⚠️ 关键:负载均衡器 Service IP 禁止被内部 Pod 访问。该 IP 仅用于外部客户端访问。
前提条件
环境要求
- ACP 版本:>= 4.2.2
- IP 支持:仅 IPv4(当前不支持 IPv6)
流量流程
流量图:
配置步骤
1. 使用 VLAN 子接口配置 ProviderNetwork
重要:必须使用 VLAN 子接口。
配置 Kube-OVN Underlay 网络以自动创建 VLAN 子接口:
⚠️ 重要:如果
ProviderNetwork通过customInterfaces指定了按节点划分的接口,则每个customInterfaces[].interface也必须使用 VLAN 子接口(父接口名 + VLAN 后缀,例如underlay0.341),而不能使用父接口(例如underlay0)。如果在customInterfaces中保留父接口,MetalLB 负载均衡器流量将无法到达后端 Pod。
⚠️ 警告:单独修改
ProviderNetwork或Vlan资源时,Underlay 网络连通性将会中断。只有在这两个资源都完成配置并保持同步后,网络连通性才会恢复。请在维护窗口期间规划配置变更,以尽量减少服务中断。
2. 配置 Kube-OVN Controller 参数
为负载均衡器功能配置 Kube-OVN controller 所需参数:
使用 Web 控制台:
- 导航到 管理员 > Marketplace > Cluster Plugins,然后搜索
ovn以定位 Alauda Container Platform Networking for Kube-OVN - 在插件行中,点击操作菜单(竖向 ⋮),然后选择 Update 以打开配置对话框
- 配置以下设置:
- Skip CT for Dst LPort IPs:No
- Enable OVN LB Local:Yes
3. 配置 Underlay subnet 外部地址特性
编辑 Underlay subnet,预留一段 IP 范围供负载均衡器使用:
重要:外部地址池 IP 必须位于 Underlay subnet 内。
修改 Underlay subnet 参数 spec.enableExternalLBAddress: true:
4. 创建 MetalLB 外部地址池
部署地址池:
5. 创建示例原生应用和 LoadBalancer Service
部署应用:
6. 验证配置
7. 迁移现有 Service
对于使用旧地址池(仅节点 subnet)的现有 Service,可以将其迁移到新的 Underlay 地址池:
对于新 Service,直接添加该 annotation: