Kube-OVN Underlay + MetalLB LoadBalancer 服务配置
目录
OverviewPrerequisites环境要求流量流程配置步骤1. 配置带 VLAN 子接口的 ProviderNetwork2. 配置 Kube-OVN Controller 参数3. 配置 Underlay 子网的外部地址功能4. 创建 MetalLB 外部地址池5. 创建示例应用及 LoadBalancer 服务6. 验证配置7. 迁移现有服务Overview
本方案解决了 MetalLB L2 模式与 Kube-OVN Underlay 网络的集成问题。它允许用户使用 Underlay 子网 IP 作为 MetalLB LoadBalancer 服务的 VIP,流量直接转发到后端业务 Pod。
Prerequisites
环境要求
- ACP 版本:>= 4.2.2
- IP 支持:仅支持 IPv4(当前不支持 IPv6)
流量流程
流量示意图:
配置步骤
1. 配置带 VLAN 子接口的 ProviderNetwork
重要:必须使用 VLAN 子接口。
配置 Kube-OVN Underlay 网络自动创建 VLAN 子接口:
⚠️ 警告:单独修改
ProviderNetwork或Vlan资源时,Underlay 网络连通性会中断。只有两个资源都配置完成且同步后,网络连通性才会恢复。请在维护窗口期间进行配置变更以减少服务中断。
2. 配置 Kube-OVN Controller 参数
为 LoadBalancer 功能配置 Kube-OVN controller 参数:
通过 Web 控制台操作:
- 进入 管理员 > Marketplace > 集群插件,搜索
ovn,找到 Alauda Container Platform Networking for Kube-OVN - 在插件行点击操作菜单(竖直 ⋮),选择 更新 打开配置对话框
- 配置以下参数:
- Skip CT for Dst LPort IPs:否
- Enable OVN LB Local:是
3. 配置 Underlay 子网的外部地址功能
编辑 Underlay 子网,预留一段 IP 范围用于 LoadBalancer 使用:
重要:外部地址池 IP 必须在 Underlay 子网内。
修改 Underlay 子网参数 spec.enableExternalLBAddress: true:
4. 创建 MetalLB 外部地址池
部署地址池:
5. 创建示例应用及 LoadBalancer 服务
部署应用:
6. 验证配置
7. 迁移现有服务
对于使用旧地址池(仅节点子网)的现有服务,可以迁移到新的 Underlay 地址池:
对于新服务,直接添加注解: