|Index|SUSE Telco Cloud Documentação|Componentes|MetalLB
Aplica-se a SUSE Telco Cloud 3.6

17 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.

17.1 Como o SUSE Telco Cloud usa o MetalLB?

O SUSE Telco Cloud 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.

Nota
Nota

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

17.2 Melhores práticas

A instalação do MetalLB no modo L2 é descrita em Capítulo 60, MetalLB no K3s (usando o modo camada 2) e para o modo L3 em Capítulo 61, 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 Capítulo 62, MetalLB na frente do servidor de API do Kubernetes.

17.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.