1

在此处输入图像描述

apiVersion: v1
kind: ConfigMap
metadata:
  namespace: metallb-system
  name: config
  labels:
    app: metallb

data:
  config: |
    address-pools:
    - name: default
      protocol: layer2
      addresses:
      - 192.168.99.100-192.168.99.250

你好,我在 minikube (virtualbox) 中使用 metallb。配置metallb的external-ip时,必须根据minikube的ip范围进行设置。但为什么即使超出范围也能正常工作?

在此处输入图像描述

4

1 回答 1

1

由于您的 MetalLB 的第 2 层配置,此行为按预期工作:

第 2 层模式是最简单的配置:在许多情况下,您不需要任何特定于协议的配置,只需要 IP 地址。

第 2 层模式不需要将 IP 绑定到工作程序节点的网络接口。它通过直接响应本地网络上的 ARP 请求来工作,将机器的 MAC 地址提供给客户端。

在您的 ConfigMap 中,我们看到:

data:
  config: |
    address-pools:
    - name: default
      protocol: layer2
      addresses:
      - 192.168.99.100-192.168.99.250

它使 MetalLB 能够控制来自192.168.99.100to的 IP,192.168.99.250并配置第 2 层模式。请注意,您的 minikube IP192.168.99.102在上面定义的范围内,因此您可以通过浏览器访问它。

这个机制在本指南MetalLB Layer 2 Configuration的部分中有很好的解释:

MetalLB 包含两条信息,一个协议和一个 IP 地址范围。在这个配置中,MetalLB 被指示从 192.168.99.95/105 中分发地址,这是我们关于节点 IP 的预定义范围。在我们的例子中,为了获取我们的 minikube 的 IP,我们使用 minikube ip 命令并在配置文件中相应地设置范围。

我建议阅读整个指南,以更好地理解整个 minikube + MetalLB 概念。

于 2020-11-03T09:42:48.757 回答