本地裸金属集群的 LoadBalancer 方案

2024 年 10 月 13 日
 nakroy

k8s 默认不支持本地裸金属集群的 LoadBalancer ,只有公有云厂商能提供直接可用的 LoadBalancer 。

但是本地私有集群的场景应该也是比较多的,很多公司的自建集群可能出于各种原因不会上公有云,那这种情况下能支持本地裸金属集群的开源 LoadBalancer 方案,目前我看到的资料比较多的是 MetalLB 、OpenELB 和 kube-vip ,而且只有 BGP 模式才能做到真正的负载均衡,对于路由器不支持 BGP 的就只能用 Layer2 模式了。

想问问各位大佬在本地集群场景有没有实践过的比较好的 LoadBalancer 架构,也许有其他的除了以上三个开源项目之外其他的 LoadBalancer 开源项目或者技术方案,对这方面的接触和了解不太多。

2834 次点击
所在节点    Kubernetes
14 条回复
seers
2024 年 10 月 13 日
可以考虑混合云,lb 使用云厂商的
opengps
2024 年 10 月 13 日
你都裸金属了,直接上硬件吧,F5
Qetesh
2024 年 10 月 13 日
wheat0r
2024 年 10 月 13 日
硬件负载均衡
nakroy
2024 年 10 月 13 日
硬件负载均衡暂时没有这个条件...
nakroy
2024 年 10 月 13 日
@Qetesh 这个方案貌似和 kube-vip 差不多
nuII
2024 年 10 月 14 日
@nakroy kube-vip 还是基于容器的,业务也是基于容器,在风控上不合适。直接安装的话等于是和 k8s 本身一个等级,容错率会高一点,技术上来说是一样的。
JoeJasper
2024 年 10 月 14 日
cilium CNI 原生支持 BGP LoadBalancer
noahzh
2024 年 10 月 14 日
先说有多大的量.
wangyzj
2024 年 10 月 14 日
我觉得这里是两个问题
1. 裸金属虽然性能更高,但是非 HPC 场景,我建议套一层虚拟化。现在虚拟化带来的性能损耗带来的一定的管理提升更重要
2. K8S 的 loadbalancer 类型通常指云厂商服务,如果本地化部署,那么 haproxy+keepalive+nodeport 做冗余就是一个方案,云厂商 ELB 也是类似的。这比 kubevip 啥的方案更好一些,能抽象出一个 LB 层复用且比较容易把流量管理 waf 那层啥的做进去
nakroy
2024 年 10 月 15 日
@wangyzj 所以高可用场景的做法都是将 LoadBalancer 独立于 k8s 集群之外的一个框架吗?“haproxy+keepalive+nodeport” 这个方法也提到过很多,之前有留意过
nakroy
2024 年 10 月 15 日
@nuII 几个开源的方案基本都是跟 k8s 集群耦合的,如果是直接硬件负载均衡和独立于集群之外的一层框架可能确实更好(应该是基于你们专业人士的实践得出的结论)
wangyzj
2024 年 10 月 15 日
@nakroy #11 生产场景把,kube-vip 生产场景怎么样我也不敢说
nakroy
2024 年 10 月 15 日
@wangyzj 感觉开源的 LoadBalancer 项目 git star 数都不多,可能大部分人不会用这种方案做 LoadBalancer

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1079823

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX