首页/云/Kubernetes 速查/MetalLB 与裸金属 LoadBalancer
网络与服务55 条

MetalLB 与裸金属 LoadBalancer

裸金属集群的 LoadBalancer 实现:从配置的地址池给 Service 分配外部 IP,L2 模式用 ARP/NDP 宣告,BGP 模式与路由器对接。

Kubernetes 速查云更新于 2026-10-12

资源示意

资源示意
apiVersion: metallb.io/v1beta1
kind: IPAddressPool
metadata:
  name: prod-pool
  namespace: metallb-system
spec:
  addresses:
    - 203.0.113.10-203.0.113.20
---
apiVersion: metallb.io/v1beta1
kind: L2Advertisement
metadata:
  name: prod-l2
  namespace: metallb-system
spec:
  ipAddressPools: ["prod-pool"]

验证

验证
kubectl get ipaddresspool -A
kubectl get svc web-lb    # EXTERNAL-IP 应显示池内地址
kubectl -n metallb-system logs deploy/speaker --tail=30
L2 模式同一时刻由单个节点响应 ARP(故障切换有秒级窗口);BGP 模式配合路由器可实现更均衡的入口。

易错点

  • 地址池要与节点所在二层网络同网段(L2 模式)且不与现有设备冲突,规划不当会引发 ARP 冲突
  • 升级 MetalLB 前确认 CRD 版本兼容(v1beta1 与后续版本字段有变化)

数据来源与参考

  • MetalLB 官方文档 · 配置与概念
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌