Pelo que entendi,
Metallb é um balanceador de carga que atribui endereço IP a um serviço, que pode ser exposto ao mundo exterior.
O Nginx Ingress é igual ao nginx normal, mas reside em kubernetes e fornece roteamento para diferentes rotas.
Minha pergunta é: por que preciso do Metallb se tenho o Nginx Ingress? Porque a entrada do nginx exporá a porta 80/443 ao público e posso usá-la apenas para rotear os serviços de que preciso.
Obrigado.
Responder1
Você precisará de ambos, pois eles resolvem problemas separados:
MetalLB recebe solicitações de fora do cluster e as equilibra nos balanceadores de carga do cluster
O Nginx recebe solicitações de fora do cluster e as equilibra entre os nós.
Verhttps://kubernetes.github.io/ingress-nginx/deploy/baremetal/#a-pure-software-solution-metallbpara detalhes.
Sem o MetalLB, o serviço de entrada nginx em bare metal permanece no pending
estado porque não possui IP atribuído a ele. MetalLB faz o trabalho de atribuir ao nginx um IP externo.
Sem o Nginx, você terá que encerrar o TLS em todos os clientes, algo que geralmente não é aconselhável.
Outra maneira de ver isso:
- A entrada nginx lida com o tipo
Ingress
- metallb lida com o tipo
LoadBalancer
A confusão provavelmente decorre do fato de que, embora as operações acima sejam fundamentalmente diferentes, elas geralmente são realizadas por um “balanceador de carga”.
Observe que o mesmo se aplica à nuvem: você precisa implantar uma entrada para lidar com a terminação de TLS e outros, e o provedor cria automaticamente um balanceador de carga em sua infraestrutura.