Estou executando o metallb há mais de um ano, mas depois de uma atualização malfeita, reinstalei tudo do zero. Depois de reinstalar o metallb, ele conseguiu atribuir IPs externos aos serviços, mas esses serviços estavam inacessíveis. Em uma inspeção mais aprofundada, vi que o alto-falante não estava respondendo a solicitações ARP, e pesquisei mais e vi que o endereço IP nunca foi vinculado à interface de rede do nó. Quando vinculei o endereço IP manualmente executando ip addr add 192.168.1.29/24 dev enp10s0
, o endereço imediatamente começou a funcionar e consegui acessar o serviço.
Não tenho certeza do porquê isso não está sendo vinculado automaticamente, presumo que o alto-falante deva estar fazendo isso? Meu ambiente é um cluster Talos 1.9.4 de 2 nós executando o kubernetes 1.32.2. Usando uma instalação nova do metallb 0.14.9 com helm e todos os valores padrão, adicionei o seguinte l2advertisement e 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
Estou usando versões bem avançadas do kubernetes e do metallb, então possivelmente é um bug? Estou olhando o código do alto-falante no GitHub, mas não falo golang