|Index|SUSE Edge Documentação|Componentes|MetalLB
Applies to SUSE Edge 3.6

15 MetalLB

Consulte a documentação oficial do MetalLB.

O MetalLB é uma implementação de balanceador de carga para clusters Kubernetes bare metal, usando protocolos de roteamento padrão.

Em ambientes bare metal, configurar balanceadores de carga de rede é notavelmente mais complexo do que em ambientes de nuvem. Ao contrário das chamadas de API diretas em configurações de nuvem, o bare metal requer dispositivos de rede dedicados ou uma combinação de balanceadores de carga e configurações de IP Virtual (VIP) para gerenciar a alta disponibilidade (HA) ou resolver o potencial ponto único de falha (SPOF) inerente a um balanceador de carga de nó único. Essas configurações não são facilmente automatizadas, apresentando desafios nas implantações do Kubernetes, onde os componentes aumentam e diminuem de escala dinamicamente.

O MetalLB resolve esses desafios aproveitando o modelo do Kubernetes para criar serviços do tipo LoadBalancer como se estivessem operando em um ambiente de nuvem, mesmo em configurações bare metal.

Existem duas abordagens diferentes, via modo L2 (usando truques de ARP) ou via BGP. Principalmente, o L2 não precisa de nenhum equipamento de rede especial, mas o BGP é, em geral, melhor. Depende dos casos de uso.

15.1 Como o SUSE Edge usa o MetalLB?

O SUSE Edge usa o MetalLB de três maneiras principais:

  • Como uma solução de balanceador de carga: O MetalLB serve como a solução de balanceador de carga para máquinas bare metal.

  • Para uma configuração de HA K3s/RKE2: O MetalLB permite o balanceamento de carga da API do Kubernetes usando um endereço IP virtual.

  • Como uma solução BGP L3 onde o MetalLB anuncia rotas para os IPs de serviço para roteadores próximos.

Note
Note

Para ser possível expor a API, o Endpoint Copier Operator (Chapter 16, Operador Endpoint Copier) é usado para manter sincronizados os endpoints da API do K8s do serviço kubernetes para um serviço kubernetes-vip LoadBalancer.

15.2 Melhores práticas

A instalação do MetalLB no modo L2 é descrita em Chapter 21, MetalLB no K3s (usando o modo camada 2) e para o modo L3 em Chapter 22, MetalLB no K3s (usando modo de camada 3).

Um guia sobre a instalação do MetalLB à frente do kube-api-server para obter uma topologia de alta disponibilidade pode ser encontrado em Chapter 24, MetalLB na frente do servidor de API do Kubernetes.

15.3 Problemas conhecidos

  • O K3s vem com sua solução de balanceador de carga chamada Klipper. Para usar o MetalLB, o Klipper deve ser desativado. Isso pode ser feito iniciando o servidor K3s com a opção --disable servicelb, conforme descrito na documentação do K3s.