首页 / 平台管理 / 网络管理 / 外部地址池 / 概述

概述

名词解释

名词 说明
VIP 虚拟 IP 地址(Virtual IP Address,VIP) 是 MetalLB 为 LoadBalancer 类型内部路由分配的 IP 地址,此地址为集群外流量提供了统一的访问入口,以便访问集群内服务。
ARP 地址解析协议(Address Resolution Protocol,ARP),用于将网络层 IP 地址映射到数据链路层 MAC 地址的协议。
GARP 无偿 ARP(Gratuitous ARP,GARP)是一种特殊的 ARP 请求,它用于通知网络中的其他节点关于某个 IP 地址与 MAC 地址的绑定关系,与正常的 ARP 请求不同,GARP 不等待其他节点的响应,而是主动向网络发送信息。
ARP Responder MetalLB 的组件,主要作用是响应 ARP 请求,将 VIP 映射到节点的 MAC 地址。当节点需要与 VIP 进行通信时,它们会发送 ARP 请求以获取 VIP 对应的 MAC 地址,每个可用节点上的 ARP Responder 负责响应这些 ARP 请求,将 VIP 映射到节点的 MAC 地址。
Controller MetalLB 的组件,负责动态地从外部地址池中为 LoadBalancer 类型的内部路由分配 VIP,且 Controller 组件会监听集群中内部路由的创建和删除事件,按需分配或释放 VIP。
Speaker MetalLB 的组件,负责根据策略或算法决定节点是否承载 VIP 并发送 GARP,且确保节点之间有一定的均衡,以及在某个节点不可用时,其他节点可以接管 VIP 并发送 GARP,实现高可用。

MetalLB 高可用原理

平台默认使用 MetalLB 的 ARP 模式,具体的实现过程和原理如下:

MetalLB 选择承载 VIP 节点的算法

MetalLB 会将外部地址池对应的所有可用节点分别和 VIP 做 Hash,并按照一定算法进行排序,选择其中第一个可用节点做为承载 VIP 的节点。

外部地址池及节点数量

创建一个外部地址池并添加可用节点,所有可用节点之间是 备份 的关系,即所有可用节点中只有承载 VIP 的节点可以转发流量,因此该节点需要能够承载外部地址池中所有 VIP 的流量。

计算公式

计算的公式为:外部地址池数量 = ceil(n-vip / n-node)。其中,ceil 向上取整。

说明:若使用虚拟机,则虚拟机数量 = 外部地址池数量 * n。其中,n 必须大于 2,且最多允许一个节点故障。

应用举例

若某公司有 10 个 VIP,每个可用节点上可承载 5 个 VIP,允许一个节点故障,那么公司该如何规划外部地址池和可用节点数量。

解析

共需要两个外部地址池和四个可用节点。