Demo simple de GSLB con AVI
Una gran característica de AVI (NSX Advanced Load Balancer) es su servicio de Global Service Load Balancer (GSLB). Desarrollado principalmente para aplicar geo-localización a nuestros sitios distribuidos en diferentes regiones o paises.
Luego navegamos Infrastructure > Clouds, editamos el cloud correspondiente y en IPAM/DNS seleccionamos el profile que acabamos de crear.
Nos queda configurar el servicio, para ello navegamos Applications > Virtual Services > Create Virtual Service > Advanced Setup
Ingresamos un nombre, y seleccionamos el Application Profile "System-DNS". Veremos que el TCP/UDP Profile cambia automáticamente.
En la solapa "Static DNS Records" agregamos un registro estático solo para poder verificar que el servicio está funcionando correctamente.
Debemos definir el Service Engine Group. Para esta demo, seleccionamos "Default-Group" que ya existe en nuestra implementación de AVI para vSphere with Tanzu.
Una vez realizados los pasos anteriores, aparecerá un nuevo item "GSLB Service" cuando navegamos Applications
Vamos a agregar el destino externo, es decir, el que no depende de un servicio de AVI. Definimos un nombre, la prioridad, y en Pool Member definimos la IP o el FQDN del servicio externo.
Agregamos un nuevo Pool, en este caso para el servicio balanceado por AVI. Ingresamos nombre, prioridad (menor a la anterior), seleccionamos "Virtual Service" y seleccionamos el servicio de AVI correspondiente a nuestra aplicación.
Y... Listo! El pool que esté primero en la lista, el que tenga mayor prioridad, será el que veamos cuando navegamos nuestra URL (app1.gslb.company.local). Cambiando la prioridad de los Pools, cambiará la aplicación que estemos navegando.
Sin embargo, también lo podemos usar para migrar una aplicación a una nueva plataforma. Por ejemplo, desde servidores virtuales a Kubernetes en vSphere with Tanzu.
Escenario
Nuestra aplicación "App1" está alojada en máquinas virtuales. La nueva versión de la aplicación está alojada en un cluster de Kubernetes en nuestra plataforma de vSphere with Tanzu que utiliza AVI como motor de balanceo.
Qué hace GSLB
En forma muy simplificada, GSLB permite definir una aplicación, detrás de un FQDN gestionado por el servicio de DNS de AVI, que tiene varios destinos posibles. Cuando en nuestro navegador ingresamos la URL de la aplicación, GSLB "decide" (por geo-localización o prioridad) a cual destino enviarnos. Es, en esencia, un DNS dinámico.
Paso 1 - Configurar el servicio de DNS
En AVI navegamos Templates > IPAM/DNS Profiles > Create > DNS Profile
Luego navegamos Infrastructure > Clouds, editamos el cloud correspondiente y en IPAM/DNS seleccionamos el profile que acabamos de crear.
Nos queda configurar el servicio, para ello navegamos Applications > Virtual Services > Create Virtual Service > Advanced Setup
Ingresamos un nombre, y seleccionamos el Application Profile "System-DNS". Veremos que el TCP/UDP Profile cambia automáticamente.
En la solapa "Static DNS Records" agregamos un registro estático solo para poder verificar que el servicio está funcionando correctamente.
Una vez creado el servicio, podremos obtener la IP navegando Applications > Virtual Services. Con esta IP podremos verificar si el servicio funciona correctamente. En un terminal podemos ejectuar un NSLookup o un DIG definiendo la IP del servicio como servidor DNS y el FQDN del registro estático que ingresamos previamente.
dig @ip_servicio_dns test.gslb.company.local +noall +answer
test.gslb.company.local. 30 IN A 8.8.8.8
Con el servicio funcionando, es momento de delegar el subzona DNS en nuestros DNSs principales. Si usamos DNS de Microsoft, hacemos clic derecho en el dominio, en este caso "company.local", seleccionamos New Delegation, agregamos el dominio delegado, que para esta demo sería "gslb", agregamos la IP del servicio de DNS de AVI y finalizamos.
Una vez configurada la delegación de dominio, verificamos que todo funcione repitiendo la consulta anterior pero consultando al servidor DNS principal de nuestro datacenter.
Configuración de GSLB
En AVI navegamos Infrastructure > GSLB > Site Configuration para configurar el servicio.
Deberemos ingresar un nombre, las credenciales de AVI, IP y puerto que ya estarán autocompletados
Debemos definir el Service Engine Group. Para esta demo, seleccionamos "Default-Group" que ya existe en nuestra implementación de AVI para vSphere with Tanzu.
Luego de guardar los cambios, esperamos a que "Site Status" esté en verde. Si queda en rojo podemos recargar la página para que actualice el estado.
Hacemos clic en "Add Third-party Site" y sólo debemos definir un nombre. Estamos creando una categoría para luego agrupar los destinos externos de nuestras aplicaciones.
Una vez realizados los pasos anteriores, aparecerá un nuevo item "GSLB Service" cuando navegamos Applications
Ingresamos los siguientes datos:
- Name: El nombre de nuestro servicio
- Application name: el "hostname" de nuestra URL
- Subdomain: para esta demo "gslb.company.local"
Con estos datos, la URL que deberemos navegar para ingresar a la Aplicación es "app1.gslb.company.local".
Seleccionamos "Priority-based" como algoritmo de balanceo y hacemos clic en Add Pool
Vamos a agregar el destino externo, es decir, el que no depende de un servicio de AVI. Definimos un nombre, la prioridad, y en Pool Member definimos la IP o el FQDN del servicio externo.
Agregamos un nuevo Pool, en este caso para el servicio balanceado por AVI. Ingresamos nombre, prioridad (menor a la anterior), seleccionamos "Virtual Service" y seleccionamos el servicio de AVI correspondiente a nuestra aplicación.
Y... Listo! El pool que esté primero en la lista, el que tenga mayor prioridad, será el que veamos cuando navegamos nuestra URL (app1.gslb.company.local). Cambiando la prioridad de los Pools, cambiará la aplicación que estemos navegando.
Consumo de recursos
Cuando utilizamos GSLB con Geo-Localización, AVI consume más memoria y más cpu que lo habitual. Por esta razón se recomienda utilizar un Service Engine group separado.
Sin embargo, si lo usamos para migrar aplicaciones en nuestro datacenter como en esta demo, el consumo es mínimo y podemos utilizar el Service Engine grupo que ya tenemos creado.
Conclusión
Si bien GSLB está pensado principalmente para grandes implementaciones, también podemos utilizarlo para migraciones de aplicaciones en nuestro datacenter. Una vez activado el servicio es muy sencillo de configurar y mantener.
Comentarios
Publicar un comentario