YARP Kubernetes Ingress: Lo que necesitas saber

YARP Kubernetes Ingress: Lo que necesitas saber

Antes de profundizar en los diversos controladores de ingreso, repasemos rápidamente qué es un ingreso de Kubernetes y qué hace un controlador de ingreso.

  • ClusterIP: agrega puntos finales internos para la comunicación en el clúster.
  • NodePort: expone un puerto estático en cada uno de los nodos para enrutar llamadas externas a servicios internos.
  • LoadBalancer: crea un balanceador de carga externo para enrutar solicitudes externas a servicios internos.

Si bien un Ingress no es un servicio de Kubernetes, también se puede usar para exponer servicios a solicitudes externas. La ventaja de Ingress sobre LoadBalancer o NodePort es que Ingress puede consolidar reglas de enrutamiento en un solo recurso para exponer múltiples servicios.

¿Por qué usar un proxy inverso?

En el caso de arquitecturas de microservicios, a menudo se deben combinar múltiples endpoints para reducir la complejidad para los clientes que los consumen. Esta es una de las principales razones para usar proxies inversos y puertas de enlace API, respectivamente.

¿Qué es YARP?

Primero entendamos las siglas. YARP significa Yet Another Reverse Proxy (“otro proxy inverso más” en inglés). Es la nueva implementación de Microsoft que apunta a la consolidación de múltiples actividades internas relacionadas con los proxies inversos.

Por supuesto, en el mercado podemos encontrar otras implementaciones de proxy inverso, pero la que hace a ésta tan especial es que se integra completamente en el entorno ASP.NET, al tiempo que  se puede personalizar y modificar fácilmente para que coincida con los requisitos específicos.

Algunas de las características que soporta esta implementación son:

  • Definiciones de ruta basadas en configuración dinámica.
  • Modelo de canalización para extensibilidad.
  • Equilibrio de carga con soporte para algoritmos diferentes y personalizados.
  • Afinidad de sesión para garantizar que las solicitudes de un cliente determinado siempre se envíen al mismo servidor de destino.
  • Transformación para modificar la solicitud enviada o la respuesta recibida del servidor de destino.
  • Autorización y CORS especificados por ruta.

Si leemos estas características detenidamente, pudiese sonar que estamos ante un tipo de API gateway en vez de un proxy inverso, pero lo cierto es que las API gateway son un tipo específico de proxies inversos.

Cómo crear nuestra primera implementación de YARP

Para quienes ya estamos familiarizados con .NET el proceso es relativamente sencillo. YARP está disponible para .NET Core 3.1 y .NET 5, pero nos centraremos en .NET 5 al ser  la última versión.

Te comparto el paso a paso para crear la implementación:

1) Abrimos Visual Studio y seleccionamos crear un proyecto web ASP.NET:

2) Instalamos el paquete NuGet más reciente utilizando la consola del administrador de paquetes.


3) Busca el paquete de NuGet Yarp.ReverseProxy en su última versión y lo instalamos.

Ahora estamos listos para empezar a usar YARP.  Para activar YARP durante la ejecución, tenemos que ajustar nuestro Program.cs, como es habitual en ASP.NET.

Una vez actualizado nuestro Program.cs, procedemos con la configuración. Para esto utilizamos el archivo appsettings.json.


Una vez hecho lo anterior, estamos listos para ejecutar nuestra solución y utilizar nuestros back-ends.

Con esto llegamos al final. Como puedes ver, combinamos proxy inverso, YARP, .NET y más para crear una solución que te ayudará. Espero que haya sido de tu agrado.

¡Hasta pronto!

⚠️
Las opiniones y comentarios emitidos en este artículo son propiedad única de su autor y no necesariamente representan el punto de vista de Revelo.

Revelo Content Network da la bienvenida a todas las razas, etnias, nacionalidades, credos, géneros, orientaciones, puntos de vista e ideologías, siempre y cuando promuevan la diversidad, la equidad, la inclusión y el crecimiento profesional de los profesionales en tecnología.