Por lo que tengo entendido,
Metallb es un equilibrador de carga que asigna una dirección IP a un servicio, que puede estar expuesto al mundo exterior.
Nginx Ingress es como nginx normal, pero reside en kubernetes y proporciona enrutamiento a diferentes rutas.
Mi pregunta es, ¿por qué necesito Metallb si tengo Nginx Ingress? Porque la entrada de nginx expondrá el puerto 80/443 al público y puedo usarlo para enrutar a los servicios que necesito.
Gracias.
Respuesta1
Necesitará ambos, ya que resuelven problemas por separado:
MetalLB recibe solicitudes desde el exterior del clúster y las equilibra entre los equilibradores de carga del clúster.
Nginx recibe solicitudes desde fuera del clúster y las equilibra entre los nodos.
Verhttps://kubernetes.github.io/ingress-nginx/deploy/baremetal/#a-pure-software-solution-metallbpara detalles.
Sin MetalLB, el servicio de entrada nginx en bare metal permanece en pending
estado porque no tiene ninguna IP asignada. MetalLB hace el trabajo de asignar a nginx una IP externa.
Sin Nginx, tendrás que realizar la terminación TLS en cada cliente, algo que generalmente no es aconsejable.
Otra forma de verlo:
- La entrada de nginx maneja el tipo.
Ingress
- metallb maneja el tipo
LoadBalancer
La confusión probablemente se deba al hecho de que, si bien las operaciones anteriores son fundamentalmente diferentes, a menudo las realiza un "equilibrador de carga".
Tenga en cuenta que lo mismo se aplica en la nube: debe implementar una entrada para manejar la terminación TLS y otros, y el proveedor crea automáticamente un equilibrador de carga en su infraestructura.