Etapa 4 – Instalar MetalLB para LoadBalancer com IPs Fixos
Leitura estimada: 2 minutos
22 visualizações
O que é o MetalLB?
O MetalLB é um load balancer para clusters Kubernetes bare-metal, que atribui IPs fixos aos serviços do tipo LoadBalancer. Isso é essencial para expor o Ingress Controller, ArgoCD, Prometheus, etc., fora do cluster.
🔧 5.1 – Pré-requisitos
Rede local com um range de IPs livres, por exemplo: 192.168.1.70-192.168.1.99
Esses IPs não devem estar em uso por nenhum host físico ou DHCP
Caso não funcione, aplique a configuração abaixo: Se você estiver usando o kube-proxy no modo IPVS, desde o Kubernetes v1.14.2, você deve habilitar o modo strict ARP.
Você não precisa disso se estiver usando o kube-router como service-proxy, pois ele habilita o strict ARP por padrão. Você pode conseguir isso editando a configuração do kube-proxy no cluster atual:
kubectl edit configmap -n kube-system kube-proxy
Existem dois parâmetros que, geralmente, serão definidos da seguinte forma:
mode: ""
strictARP: false
Eles devem ser alterados para:
mode: "ipvs"
strictARP: true
Após alguns segundos, ele receberá um IP do pool configurado.
🖥️ Resultado esperado
Você poderá acessar qualquer serviço exposto como LoadBalancer com IP fixo, ideal para ambientes bare-metal/on-premises.
Etapa 4 – Instalar MetalLB para LoadBalancer com IPs Fixos
O que é o MetalLB?
O MetalLB é um load balancer para clusters Kubernetes bare-metal, que atribui IPs fixos aos serviços do tipo LoadBalancer. Isso é essencial para expor o Ingress Controller, ArgoCD, Prometheus, etc., fora do cluster.
🔧 5.1 – Pré-requisitos
📥 5.2 – Instalar MetalLB
Aguarde os pods ficarem prontos:
📦 5.3 – Configurar um Pool de IPs fixos
Crie o arquivo metallb-config.yaml:
Aplica:
🧪 5.4 – Teste com um Serviço LoadBalancer
Exemplo de serviço exposto com IP fixo via MetalLB:
Crie um deployment de exemplo:
Verifique o IP externo:
Você verá algo como:
🧩 5.5 – Usar MetalLB com Ingress-NGINX
Edite o Service do Ingress Controller para ser do tipo LoadBalancer:
Modifique o tipo de ClusterIP para LoadBalancer:
Caso não funcione, aplique a configuração abaixo:
Se você estiver usando o kube-proxy no modo IPVS, desde o Kubernetes v1.14.2, você deve habilitar o modo strict ARP.
Você não precisa disso se estiver usando o kube-router como service-proxy, pois ele habilita o strict ARP por padrão. Você pode conseguir isso editando a configuração do kube-proxy no cluster atual:
Após alguns segundos, ele receberá um IP do pool configurado.
🖥️ Resultado esperado
Você poderá acessar qualquer serviço exposto como LoadBalancer com IP fixo, ideal para ambientes bare-metal/on-premises.