BGP(Border Gateway Protocol/边界网关协议)是一种基于标准的网络协议,用于在网络中共享路由。它是互联网的基本组成部分之一,具有出色的扩展特性。在K8S中,BGP是出场率很高的一个路由协议,有很多相关的CNI或者是LoadBalancer都会使用BGP协议来实现诸如路由可达或者是ECMP等特性。 目前对BGP协议支持最好、使用最广泛的CNI...
在L2模式下,MetalLB采用ARP/NDP协议进行外部公告。一个节点成为服务的所有者,其网络接口上多个IP地址可通过标准地址发现协议在本地网络中被发现。这种模式在任何以太网网络上都适用,且无需特殊硬件或路由器。然而,它存在单节点瓶颈和故障切换可能缓慢的局限性。当服务IP流量需要在集群中流动时,kube-pro...
BGP模式的优势在于可以使用外部的硬件路由器,而不是定制的负载能力。当然这也是BGP模式的最大的缺点。如果集群中的主机出现故障,这时又想快速断开所有服务是,路由器会无法快速做出响应。 基于BGP的无状态服务负载均衡采用数据包中固定字段进行哈希计算,将特定的数据包转发到特定的下一跳中。然而这也是BGP模式的一个弊端。
一个Kubernetes 集群, 版本不低于 1.13.0 , 没有别的网络负载均衡能力. 一个可以和 MetalLB 共存的集群网络配置,calico看起来是可以的. 一些IPv4 地址给 MetalLB 使用. 当使用 BGP 操作模式时, 需要一个或多个支持 BGP 的路由器. 当使用 L2 操作模式时, 在节点之间必须允许端口 7946 的通讯(TCP 或 UDP, ...
BGP模式是一种较为理想的实现。BGP需要支持BGP路由协议的软路由或者硬件路由器设备,而无需定制的负载均衡器。在使用BGP协议时,需要路由器采用哈希等方式确保单个连接上的数据包转发到同一台主机上。由此也引发BGP模式的一个最大的缺点,在主机发生故障时无法快速切换到新的主机上,从而引发同一连接的不同数据包发送到...
通过使用 BGP,可以实现真正的跨多节点负载均衡(需要路由器支持 multipath),还可以基于 BGP 的策略机制实现细粒度的流量控制。 具体的负载均衡行为和路由器有关,可保证的共同行为是:每个连接(TCP 或 UDP 会话)的数据包总是路由到同一个节点上。 BGP 模式的优缺点: ...
这意味着路由器将一起使用所有下一跳,并在它们之间进行负载平衡。 数据包到达节点后,kube-proxy负责流量路由的最后一跳,以将数据包到达服务中的一个特定容器。 由于硬件环境的约束,作者没有在BGP模式下进行试验,因此,有关BGP模型更详细的介绍,请参见MetalLB官方文档 3. 部署MetalLB 3.1 部署 kubectl apply -f ...
BGP模式 BGP模式是真正的负载均衡,该模式需要路由器支持BGP协议 ,群集中的每个节点会与网络路由器建议...
BGP 功能受限于 MetalLB 的支持水平,其他软件路由器中的功能需要专门为 MetalLB 开发。MetalLB 有一些额外的 BGP 功能,如聚合和社区支持,但没有被认为在标准路由器中必须的功能。 这两种模式都可以同时使用,每种模式都需要特定的配置。 流量策略 MetalLB 支持这种设置,但是在 L2 模式下将 externalTrafficPolicy 设置...
图2-1 BGP基本配置组网图 3. 配置步骤 (1) 配置各接口的IP地址(略) (2) 配置IBGP连接 ¡ 为了防止端口状态不稳定引起路由震荡,本举例使用Loopback接口来创建IBGP对等体。 ¡ 使用Loopback接口创建IBGP对等体时,因为Loopback接口不是两对等体实际连接的接口,所以,必须使用peer connect-interface命令将Loop...