该笔记将记录:在 Kubernetes Cluster 中,部署及使用 MetalLB 组件的方法,以及常见问题的解决办法。理论:掌握 MetalLB 的使用方法;实践:通过 MetalLB 组件,实现 Service 资源分配地址及服务暴露。
认识
MetalLB,集群 LoadBalancer 组件,能够从 Address Pool 中为 spec.type: LoadBalancer 的 Service 资源分配地址。解决自建 Kubernetes 集群无法使用负载均衡的难题。
官网:https://metallb.io/
文档:https://metallb.io/installation/
仓库:https://github.com/metallb/metallb
改进
其成熟度
MetalLB is currently in beta. MetalLB v0.13.5
我们是在 Staging / Developing,以及内部环境中使用,暂时还未遇到严重问题;
根据官方描述,部分用户已经在生产环境中使用;
测试覆盖率:代码库具有合理的测试覆盖率,以及覆盖大部分回归的大量端到端测试。尽管如此,边缘情况可能存在错误,因此如果发现意外行为,考虑提交问题;
配置格式:其可能发生变更,但是官方会进行描述,并提供相关的工具进行说明;
目前(04/28/2022,MetalLB v0.12.1)为止,看起来 MetalLB 并不那么依赖于 Kubernetes API 版本,其主要工作是在 Worker 完成地址绑定及通告、管理流量转发规则;
文档:文档存在,还有需要改善的地方,尚未经过许多不熟悉该项目的读者的实战测试;
开发者:MetalLB 的版权归谷歌所有,直到 2019 年 3 月。然而,它从来都不是谷歌的官方项目。该项目没有任何形式的企业赞助。我们是在 Nginx Ingress Controller 的官方文档中了解到 MetaLB 项目,所以开始尝试使用;
# 05/02/2025 目前 v0.14.9 版本。
社区贡献