我已经运行 metallb 一年多了,但在一次拙劣的升级之后,我重新安装了整个系统。重新安装 metallb 后,它能够将外部 IP 分配给服务,但这些服务无法访问。进一步检查后,我发现扬声器根本没有响应 ARP 请求,进一步挖掘发现 IP 地址从未绑定到节点的网络接口。当我通过运行手动绑定 IP 地址时ip addr add 192.168.1.29/24 dev enp10s0
,该地址立即开始工作,我能够访问该服务。
不过,我不确定为什么它没有自动绑定,我猜应该是扬声器在做这件事?我的环境是一个 2 节点 Talos 1.9.4 集群,运行 kubernetes 1.32.2。使用全新安装的 metallb 0.14.9 和 helm 以及所有默认值,然后添加了以下 l2advertisement 和 ipaddresspool:
apiVersion: metallb.io/v1beta1
kind: IPAddressPool
metadata:
name: default
spec:
addresses:
- 192.168.1.20-192.168.1.99
---
apiVersion: metallb.io/v1beta1
kind: L2Advertisement
metadata:
name: default
namespace: metallb
spec:
ipAddressPools:
- default
我正在使用非常前沿的 kubernetes 和 metallb 版本,所以可能是 bug?我在 GitHub 上查看了演讲者代码,但我不会说 golang