跳到内容跳到页面导航:上一页 [access key p]/下一页 [access key n]
documentation.suse.com / SUSE Edge 文档 / 使用的组件 / MetalLB

17 MetalLB

请参见 MetalLB 官方文档

MetalLB 是使用标准路由协议的裸机 Kubernetes 群集的负载平衡器实现。

在裸机环境中,设置网络负载平衡器比在云环境中要复杂得多。与云设置中的直接 API 调用不同,裸机需要通过专用网络设备或者负载平衡器和虚拟 IP (VIP) 配置的组合,来管理高可用性 (HA) 或解决单节点负载平衡器固有的潜在单一故障点 (SPOF)。这些配置不容易自动化,在组件会动态扩展和缩减的 Kubernetes 部署中带来了挑战。

MetalLB 可以解决这些挑战,因为它利用 Kubernetes 模型创建 LoadBalancer 类型的服务,就如同这些服务是在云环境中运行一样,即使在裸机设置中,也能做到这一点。

为此可以采用两种不同的方法:通过 L2 模式(使用 ARP 技巧)或通过 BGP。大体而言,L2 不需要任何特殊网络设备,但 BGP 通常效果更好。使用哪种方法取决于用例。

17.1 SUSE Edge 如何使用 MetalLB?

SUSE Edge 通过两种主要方式使用 MetalLB:

  • 作为负载平衡器解决方案:MetalLB 充当裸机的负载平衡器解决方案。

  • 对于 HA K3s/RKE2 设置:MetalLB 允许使用虚拟 IP 地址对 Kubernetes API 进行负载平衡。

注意
注意

为了能够公开 API,会使用 endpoint-copier-operator 将 K8s API 端点从“kubernetes”服务同步到“kubernetes-vip”LoadBalancer 服务。

17.2 最佳实践

MetalLB 指南(第 19 章 “K3s 上的 MetalLB(使用 L2))中详细介绍了 L2 模式的 MetalLB 安装。

有关在 kube-api-server 前面安装 MetalLB 以实现 HA 设置的指南,请参见“Kubernetes API 服务器前面的 MetalLB”(第 20 章 “Kubernetes API 服务器前面的 MetalLB)教程。

17.3 已知问题

  • K3S 负载平衡器解决方案:K3S 附带负载平衡器解决方案 Klipper。要使用 MetalLB,必须禁用 Klipper。为此,可以按照 K3s 文档中所述,使用 --disable servicelb 选项启动 K3s 服务器。