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
Descubra como o Rundeck pode otimizar suas tarefas de sysadmin
O que é? Rundeck é mais que simplesmente um software. Trata-se de uma plataforma open-source com interface web, que auxilia o administrador na automatização de rotinas operacionais em data-center ou
Como usar o Kustomize no Kubernetes
Olá pessoal, hoje no blog da 4Linux, vamos falar de uma sensacional para Kubernetes chamada Kustomize. Bora lá!! O que é o Kustomize? O Kustomize é uma ferramenta nativa do
Gerenciamento eficiente de dispositivos em bloco com LVM no ambiente GNU/Linux
LVM ou Logical Volume Management é uma solução para o fácil gerenciamento de dispositivos em bloco dentro do ambiente GNU/Linux via blocos virtuais. Como assim ? Vamos explicar. Primeiramente todo









