O MetalLB é um balanceador de carga para clusters Kubernetes que não estão sendo executados em um ambiente de nuvem. Ele preenche a lacuna onde o Kubernetes não oferece um balanceador de carga de rede para ambientes on-premises. Neste artigo, vamos orientá-lo sobre como instalar e configurar o MetalLB em um ambiente on-premises.

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.