MetalLB 目前处于测试阶段。阅读有关项目成熟度的信息,并确保您通过彻底阅读官方文档来了解自己。
MetalLB 可以使用简单的 Kubernetes 清单或 Helm 进行部署。本示例的其余部分假定 MetalLB 已按照安装说明进行部署。MetalLB 需要一个 IP 地址池才能获得 ingress-nginx 服务的所有权。该池可以在名为 config 的 ConfigMap 中定义,该 ConfigMap 位于与 MetalLB 控制器相同的命名空间中。这个 IP 池必须专门供 MetalLB 使用,您不能重复使用 Kubernetes 节点 IP 或 DHCP 服务器分发的 IP。
给定以下 3 节点 Kubernetes 集群(以添加外部 IP 为例
$ kubectl get node
NAME STATUS ROLES EXTERNAL-IP
host-1 Ready master 203.0.113.1
host-2 Ready node 203.0.113.2
host-3 Ready node 203.0.113.3
创建以下 ConfigMap 后,MetalLB 获得池中 IP 地址之一的所有权,并相应地更新 ingress-nginx 服务的 loadBalancer IP 字段。
apiVersion: v1
kind: ConfigMap
metadata:
namespace: metallb-system
name: config
data:
config: |
address-pools:
- name: default
protocol: layer2
addresses:
- 203.0.113.10-203.0.113.15