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
Entenda o que é API e como ela funciona no mundo digital
O que é uma API? APIs são mecanismos que permitem que dois software se comuniquem usando um conjunto de definições e protocolos. Ao interagirmos com computadores, celulares ou outros aparelhos,
Guia passo a passo para criar um cluster Hadoop com 3 nodes
Nesse post vou explicar como é possível criar um cluster de hadoop utilizando 3 nodes. Já o que você vai fazer com o hadoop depois é um assunto pra um
GitLab CI – Integração Contínua sem sair do repositório
Ferramentas de CI/CD hoje em dia andam de mãos dadas com os nossos projetos – dificilmente vemos um repositório no GitHub, GitLab, Bitbucket, Gitea… sem alguma configuração de integração contínua.