Kubernetes的负载均衡方案:MetalLB

私有云裸金属架构(这是相对云上环境来说,不是说无操作系统)上部署的 Kubernetes 集群,通常是无法使用 LoadBalancer 类型的 Service 的。因为 Kubernetes 本身没有为裸机群集提供网络负载均衡器的实现。

如果你的 Kubernetes 集群没有在公有云的 IaaS 平台(GCP,AWS,Azure …)上运行,则 LoadBalancers 将在创建时无限期地保持 “挂起” 状态,也就是说只有公有云厂商自家的 Kubernetes 支持 LoadBalancer 。

但如果是自建的kubernetes裸机集群,那则要麻烦得多。祼机集群默认不支持负载均衡的方式,可用的方案不外乎、NodePort、Ingress、ExternalIPs等方式来实现外部访问。可惜这些方案本身并不完美,他们或多或少都存在着一些缺点,这使得裸金属集群成为Kubernetes生态系统中的二等公民。前者的缺点是每个暴露的服务需要占用所有节点的某个端口,后者的缺点是仅仅能支持 HTTP 协议。

项目地址:https://github.com/danderson/metallb
官方文档:https://metallb.org/

一. 产品介绍

什么是 MetalLB?
MetalLB 是一个负载均衡器,专门解决裸金属 Kubernetes 集群中无法使用 LoadBalancer 类型服务的痛点。

猜你喜欢

转载自blog.csdn.net/qq_50573146/article/details/129031119