Descubra como o MetalLB aprimora o balanceamento de carga em ambientes Kubernetes on-premises
Por que usar o MetalLB em um ambiente on-premises?
O MetalLB é uma solução essencial para clusters Kubernetes que não estão sendo executados em um ambiente de nuvem. Em ambientes de nuvem pública (como AWS, Azure, GCP) quando você cria um serviço do tipo LoadBalancer, a infraestrutura de nuvem fornece o balanceador de carga necessário. No entanto, em uma nuvem privada ou ambiente on-premises, as implementações de balanceadores de carga de rede estão ausentes. É aqui que o MetalLB entra em ação.
Sem o MetalLB ou uma solução similar, o IP externo de qualquer serviço recém-criado no Kubernetes permanecerá indefinidamente em estado pendente. O MetalLB oferece uma implementação de balanceador de carga de rede que se integra com equipamentos de rede padrão, fazendo com que os serviços externos em clusters bare-metal funcionem de maneira semelhante aos seus equivalentes em provedores de plataforma IaaS1.
Mudança para IPAddressPool e L2Advertisement
Na versão mais recente do MetalLB, a configuração mudou de usar ConfigMaps para definir pools de endereços IP para usar os recursos IPAddressPool e L2Advertisement. Aqui estão as razões e detalhes por trás dessa mudança:
- IPAddressPool: Este novo tipo de recurso substituiu a antiga maneira de provisionar a configuração do pool de endereços com ConfigMap. Ele permite definir um pool de endereços IP, que o MetalLB pode usar para atribuir endereços IP externos aos serviços1;
- L2Advertisement: Este é um novo tipo de recurso que permite anunciar os endereços IP do pool em camada 2. Ele trabalha em conjunto com o IPAddressPool para fornecer uma configuração mais flexível e robusta1;
- Flexibilidade e Isolamento: Com esses novos recursos, o MetalLB oferece a flexibilidade de atribuir pools de endereços a pares BGP específicos, efetivamente a um subconjunto de nós na rede. Isso permite configurações mais complexas, como a facilitação do isolamento de nós ou a segmentação da rede2;
- Suporte a Protocolos: O MetalLB agora suporta anunciar usando L2 e BGP para o mesmo conjunto de endereços IP, fornecendo tolerância a falhas para o endereço IP externo e balanceamento de carga2.
Essas mudanças tornam o MetalLB mais flexível e poderoso, permitindo uma configuração mais refinada e eficiente para atender às necessidades específicas do seu ambiente.
Pré-requisitos
Antes de começar, certifique-se de que seu ambiente Kubernetes esteja configurado corretamente e que todas as dependências estejam instaladas. Se você estiver usando o kube-proxy no modo IPVS, a partir do Kubernetes v1.14.2 você precisa habilitar o modo ARP estrito. Para fazer isso, você pode editar a configuração do kube-proxy no seu cluster atual. A configuração necessária é:
Observe que você não precisa disso se estiver usando o kube-router como proxy de serviço, porque ele habilita o ARP estrito por padrão.
Para editar configuração do kube-proxy no cluster, execute o comando abaixo:
kubectl edit configmap -n kube-system kube-proxy
Procure o Kind KubeProxyConfiguration e defina a seguinte configuração:
apiVersion: kubeproxy.config.k8s.io/v1alpha1
kind: KubeProxyConfiguration
mode: “ipvs”
ipvs:
strictARP: true
Instalação do MetalLB
O MetalLB pode ser instalado aplicando o manifesto apropriado. Aqui está o comando para instalar o MetalLB:
kubectl apply -f https://raw.githubusercontent.com/metallb/metallb/v0.13.10/config/manifests/metallb-native.yaml
Este comando irá instalar o MetalLB em seu cluster, no namespace metallb-system.
Configuração do MetalLB
O MetalLB permanecerá inativo até ser configurado. Para configurar o MetalLB, você precisa definir os IPs que serão atribuídos aos serviços do Load Balancer. Aqui está um exemplo de como fazer isso:
—
apiVersion: metallb.io/v1beta1
kind: IPAddressPool
metadata:
name: first-pool
namespace: metallb-system
spec:
addresses:
– 172.16.1.201-172.16.1.250
—
apiVersion: metallb.io/v1beta1
kind: L2Advertisement
metadata:
name: advertisement
namespace: metallb-system
spec:
ipAddressPools:
– first-pool
Substitua o intervalo de endereços IP no exemplo acima pelo intervalo de endereços IP que você deseja usar em seu ambiente.
Estes são os passos básicos para instalar e configurar o MetalLB em um ambiente on-premises. Lembre-se de que pode haver outras configurações que você pode querer ajustar de acordo com as necessidades específicas de seu ambiente.
About author
Você pode gostar também
Conhecendo o Kernel Linux pelo /proc (parte 3) – Mapeamento de memória virtual
Como vimos nos posts anteriores, o Linux trabalha com conceito de memória virtual, ou seja, cada processo tem seu próprio endereçamento virtual totalmente isolados dos outros processos, porém o que
Desvendando a Lógica de Programação: Como ela impacta nosso dia a dia
Quando começamos a aprender a programar, nos deparamos com muitas coisas que, para muitos, são novas. Conceitos como variáveis, memória, escopo, interfaces, entre outros. Também nos deparamos com conceitos que
Introdução ao Robot Framework: Ferramenta para Testes Automatizados
Hoje, no blog da 4Linux, vamos falar sobre Robot Framework, uma ferramenta voltada para testes automatizados. O objetivo é fazer uma séries de posts até a criação de uma pipeline