创建外部 IP 地址池
外部 IP 地址池是一组 IP,MetalLB 利用这些 IP 来获取负载均衡器类型内部路由的外部访问 IP。
目录
前提条件
如果您需要使用 BGP 类型的外部 IP 地址池,请联系管理员以启用相关功能。
约束与限制
外部地址的 IP 资源必须满足以下条件:
-
外部地址池必须与可用节点以第二层(L2)互联。
-
IP 必须可以被平台使用,且不能包括物理网络中已使用的 IP,例如网关 IP。
-
必须与集群使用的网络没有重叠,包括集群 CIDR、服务 CIDR、子网等。
-
在双栈环境中,确保同时在同一外部地址池中存在 IPv4 和 IPv6 地址,且它们的数量都大于 0。否则,双栈负载均衡器类型的内部路由将无法获取外部访问地址。
-
在 IPv6 环境中,节点的 DNS 必须支持 IPv6;否则,MetalLB 插件无法成功部署。
部署 MetalLB 插件
使用外部地址池依赖于 MetalLB 插件。
-
进入 平台管理。
-
在左侧导航栏中,点击 市场 > 集群插件。
-
搜索 MetalLB,点击 MetalLB 右侧的 ⋮ > 部署。
-
等待部署状态显示 部署成功 以完成部署。
示例 IPAddressPool 自定义资源 (CR)
BGP 模式:
- IP 池参考。
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 也不会通告任何地址。
通过 Web 控制台创建外部 IP 地址池
-
进入 平台管理。
-
在左侧导航栏中,点击 网络管理 > 外部 IP 地址池。
-
点击 创建外部 IP 地址池。
-
根据以下说明配置某些参数。
-
点击 创建。
通过 CLI 创建外部 IP 地址池
查看告警策略
-
进入 平台管理。
-
在左侧导航栏中,点击 网络管理 > 外部 IP 地址池。
-
点击页面右上角的 查看告警策略 以查看 MetalLB 的通用告警策略。