外部 IP 地址池是一组 IP,MetalLB 利用这些 IP 来获取负载均衡器类型内部路由的外部访问 IP。
如果您需要使用 BGP 类型的外部 IP 地址池,请联系管理员以启用相关功能。
外部地址的 IP 资源必须满足以下条件:
外部地址池必须与可用节点以第二层(L2)互联。
IP 必须可以被平台使用,且不能包括物理网络中已使用的 IP,例如网关 IP。
必须与集群使用的网络没有重叠,包括集群 CIDR、服务 CIDR、子网等。
在双栈环境中,确保同时在同一外部地址池中存在 IPv4 和 IPv6 地址,且它们的数量都大于 0。否则,双栈负载均衡器类型的内部路由将无法获取外部访问地址。
在 IPv6 环境中,节点的 DNS 必须支持 IPv6;否则,MetalLB 插件无法成功部署。
使用外部地址池依赖于 MetalLB 插件。
进入 平台管理。
在左侧导航栏中,点击 市场 > 集群插件。
搜索 MetalLB,点击 MetalLB 右侧的 ⋮ > 部署。
等待部署状态显示 部署成功 以完成部署。
BGP 模式:
Q: 什么是 L2Advertisement
?
A:
L2Advertisement
是 MetalLB 提供的自定义资源 (CRD),用于控制哪些 IP 地址池的地址应通过 ARP (IPv4) 或 NDP (IPv6) 在第二层模式下广播。Q: L2Advertisement
的目的是什么?
A:
指定在 IPAddressPool 中哪些 IP 地址进行 L2 广播 (ARP/NDP 广告);
控制广播行为以防止 IP 冲突或跨段广播;
在多 NIC、多网络环境中限制广播范围。
简而言之,它告诉 MetalLB:哪些 IP 可以广播,广播给谁(例如,哪些节点)。
在第二层模式下,如果未定义 L2Advertisement
,MetalLB 将不会广播任何地址。
Q: MetalLB 中的 BGPAdvertisement
是什么?
A:
BGPAdvertisement
是 Kubernetes 自定义资源定义 (CRD),用于 MetalLB,这是一个用于裸金属 Kubernetes 集群的负载均衡器实现。它控制如何通过 BGP (边界网关协议) 将 IP 地址范围(在 IPAddressPool
中定义)通告给外部网络。
Q: BGPAdvertisement
重要吗?
A:
在 MetalLB 的 BGP 模式下,控制器与外部路由器通过 BGP 建立对等关系,并通告分配给 Kubernetes Service
对象的 IP。BGPAdvertisement
资源允许您:
控制哪些地址池被通告
自定义路由通告设置,例如:
路由聚合
BGP 社区
本地优先级 (BGP 优先级)
如果未定义 BGPAdvertisement
,即使您已配置 BGP 对等体,MetalLB 也不会通告任何地址。
进入 平台管理。
在左侧导航栏中,点击 网络管理 > 外部 IP 地址池。
点击 创建外部 IP 地址池。
根据以下说明配置某些参数。
参数 | 描述 |
---|---|
类型 |
|
IP 资源 | 支持 CIDR 和 IP 范围格式的输入。点击 添加 支持多个条目,示例如下: CIDR: 192.168.1.1/24 。IP 范围: 192.168.2.1 ~ 192.168.2.255 。 |
可用节点 | 在 L2 模式下,可用节点是用于承载所有 VIP 流量的节点;在 BGP 模式下,可用节点是用于承载 VIP,与对等方建立 BGP 连接并向外通告路由的节点。
|
BGP 对等体 | 选择 BGP 对等体;有关具体配置,请参考 BGP 对等体。 |
点击 创建。
进入 平台管理。
在左侧导航栏中,点击 网络管理 > 外部 IP 地址池。
点击页面右上角的 查看告警策略 以查看 MetalLB 的通用告警策略。