Ingreso de Metallb vs Nginx en Kubernetes

Ingreso de Metallb vs Nginx en Kubernetes

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 pendingestado 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 tipoLoadBalancer

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.

información relacionada