Detección de servicios mediante registros SRV DNS
Un registro SRV (registro de servicio) es una especificación de datos del Sistema de nombres de dominio que define la ubicación, es decir, el nombre del host y el número de puerto de los servidores para los servicios especificados. El registro también define el peso y la prioridad de cada servidor.
Ejemplo de registro SRV:
_http._tcp.example.com. 100 EN SRV 10 60 5060 a.example.com.
La siguiente tabla describe cada elemento de un registro SRV:
Puede utilizar los registros SRV DNS para descubrir los extremos de servicio. El dispositivo NetScaler está configurado para consultar periódicamente los servidores DNS con el registro SRV asociado a un servicio. Al recibir el registro SRV, cada uno de los hosts de destino publicados en el registro SRV está enlazado a un grupo de servicios asociado al servicio. Cada uno de los enlaces hereda el puerto, la prioridad y el peso del registro SRV. Para cada implementación de servicio, el usuario debe configurar el dispositivo NetScaler una vez mientras lo abre, lo que lo convierte en una implementación de aplicaciones con un solo toque.
Importante:El peso de los miembros del grupo de servicios aprendidos dinámicamente no se puede modificar mediante la CLI o la GUI.
Caso de uso: microservicios de equilibrio de carga
Las aplicaciones se están desplazando hacia arquitecturas de microservicios desde arquitecturas monolíticas. El movimiento hacia la arquitectura de microservicios junto con la solución de escala automática de servidores back-end hace que la implementación de aplicaciones sea más dinámica. Para admitir una implementación dinámica de este tipo, los proxies o el ADC deben poder detectar dinámicamente las instancias de servicio o aplicación back-end y absorberlas en la configuración del proxy. La función de descubrimiento de servicios mediante registros DNS SRV ayuda a configurar el dispositivo NetScaler en un caso de implementación tan dinámico. Los desarrolladores de aplicaciones pueden utilizar algunas de las plataformas de orquestación para implementar la aplicación. Es posible que las plataformas de orquestación mientras se crean instancias de contenedores durante la implementación de aplicaciones no asignen el puerto estándar específico del protocolo para cada uno de estos contenedores. En tales situaciones, descubrir la información del puerto se convierte en la clave para configurar el dispositivo NetScaler. Los registros SRV son útiles en este caso. Los parámetros del registro SRV, como la prioridad y el peso, se pueden utilizar para equilibrar mejor la carga de las aplicaciones.
- El parametro de prioridad机构utilizar对位determinar la prioridad del grupo de servidores.
- El parámetro de peso se puede usar para determinar la capacidad de las instancias de servicio de fondo y, por lo tanto, se puede usar para equilibrar la carga ponderada.
- Siempre que se produzca un cambio en el grupo de servidores de fondo (por ejemplo, se elimina una instancia de fondo del grupo), la instancia se elimina por cortesía solo después de que se respeten todas las conexiones de cliente existentes.
Nota:
Un servicio de descubrimiento basado en registros A/AAAA, todas las direcciones IP resueltas tienen el mismo peso porque se asigna el peso al dominio que se está resolviendo.
Si el peso en la respuesta SRV es superior a 100, no se crean los servicios.
Equilibrio de carga basado en prioridades mediante registros SRV
Puede utilizar los registros SRV para realizar un equilibrio de carga basado en prioridades. El grupo de servidores basado en prioridades puede ser una alternativa para los servidores virtuales de respaldo. El archivo ns.conf requiere una configuración mínima en comparación con los servidores virtuales de respaldo.
En el equilibrio de carga basado en prioridades mediante registros SRV, se asigna un número de prioridad a cada uno de los servidores. El menor número tiene la prioridad más alta. Uno de los servidores del grupo de prioridad más alta se selecciona para el equilibrio de carga en función del estado y la disponibilidad del servidor. Si todos los servidores del grupo de servidores de mayor prioridad están inactivos, se seleccionan los servidores que tengan la siguiente prioridad más alta para equilibrar la carga. Sin embargo, si los servidores del grupo de servidores de mayor prioridad vuelven a estar activos, se vuelven a seleccionar los servidores del grupo de mayor prioridad.
El cambio de un grupo de servidores prioritarios a otro grupo de servidores se realiza sin problemas al reducir las transacciones de los clientes existentes. Por lo tanto, los clientes actuales no ven ninguna interrupción en el acceso a la aplicación.
Para habilitar la consulta de registros SRV mediante la CLI
Realice las siguientes tareas para habilitar la consulta de registros SRV:
Cree un servidor especificando el parámetro del tipo de consulta como SRV.
En la línea de comandos, escriba:
add server
[-queryType ]) Ejemplo:
add server web_serv example.com -queryType SRV
Nota:
- De forma predeterminada, se envían consultas IPv4. Para enviar consultas IPv6, debe habilitar el dominio IPv6.
- El nombre de dominio de destino de SRV no debe superar los 127 caracteres.
Cree un grupo de servicios con el modo de escalabilidad automática como DNS.
En la línea de comandos, escriba:
add serviceGroup
[-autoScale ] Ejemplo:
add servicegroup svc_grp_1 http -autoscale dns
Enlazar el servidor creado en el paso 1 al grupo de servicios como miembro.
En la línea de comandos, escriba:
bind serviceGroup
Ejemplo:
bind servicegroup svc_grp_1 web_serv
Nota:
Al vincular servidores a miembros de grupos de servicios, no es necesario introducir el número de puerto para los tipos de servidores SRV. Si especifica un número de puerto para el tipo de servidor SRV, aparecerá un mensaje de error.
Si lo desea, puede especificar un servidor de nombres y un valor TTL al vincular un servidor al grupo de servicios.
Para habilitar la consulta de registros SRV mediante la GUI
Crear un servidor
Vaya aAdministración del tráfico>Equilibrio de carga>Servidoresy haga clic enAgregar.
En la páginaCrear servidor, seleccione nombre de dominio.
Introduzca los detalles de todos los parámetros requeridos.
EnTipo de consulta, seleccioneSRV.
Haga clic enCreate.
Cree un grupo de servicios con modo de escalabilidad automática como DNS
Vaya aAdministración del tráfico>Equilibrio de carga>Grupos de servicios.
En la páginaGrupo de servicio de equilibrio de carga, introduzca los detalles de todos los parámetros necesarios.
EnModo de Autoscale, seleccioneDNS.
Haga clic enAceptar.
Enlazar el servidor al miembro del grupo de servicios
Vaya aAdministración del tráfico>Equilibrio de carga>Grupos de servicios.
En la páginaGrupos de servicios, seleccione el grupo de servicios que ha creado y haga clic enModificar.
En la páginaGrupos de servicios de equilibrio de carga, haga clic enMiembros del grupode
En la páginaEnlace de miembros del grupo de servicios, seleccione el servidor que ha creado y haga clic enCerrar.
Nota:
Durante el enlace, no es necesario introducir el número de puerto para los tipos de servidores SRV. En caso de que introduzca un número de puerto para el tipo de servidor SRV, aparecerá un mensaje de error.
Si lo desea, puede especificar un servidor de nombres y un valor TTL al vincular un servidor al grupo de servicios.
Sobrescribir valores TTL
El dispositivo NetScaler está configurado para consultar periódicamente al servidor DNS cualquier actualización del registro SRV asociado a la aplicación durante el inicio de la aplicación. De forma predeterminada, la periodicidad de esta consulta depende del TTL publicado en el registro SRV. En las aplicaciones de microservicios o en el mundo de la nube, las implementaciones cambian de forma más dinámica. Como resultado, los proxies deben absorber más rápidamente cualquier cambio en la implementación de la aplicación. Por lo tanto, se recomienda a los usuarios configurar el parámetro TTL del servicio basado en el dominio de forma explícita en un valor inferior al TTL del registro SRV y que sea óptimo para su implementación. Puede sobrescribir el valor TTL mediante dos métodos:
- Al vincular a un miembro al grupo de servicios
- Establecer el valor TTL globalmente mediante el comando set lb parameter.
En caso de que el valor TTL esté configurado tanto al vincular al miembro del grupo de servicios como también a nivel global, prevalece el valor TTL especificado al vincular al miembro del grupo de servicios. Si el valor TTL no se especifica mientras se vincula a un miembro del grupo de servicios o en el nivel global, el intervalo del monitor DBS se deriva del valor TTL en la respuesta DNS.
Sobrescribir los valores de TTL mediante la CLI
Para sobrescribir el valor TTL durante el enlace, en la línea de comandos, escriba:
bind serviceGroup
( [-dbsTTL ]) Ejemplo:
bind servicegroup svc_grp_1 web_serv -dbsTTL 10
Para sobrescribir el valor TTL de forma global, en la línea de comandos, escriba:
set lb parameter [-dbsTTL
] Ejemplo:
set lb parameter -dbsTTL 15
Sobrescribir los valores de TTL mediante la GUI
Para sobrescribir el valor TTL durante el enlace:
Vaya aAdministración del tráfico>Equilibrio de carga>Grupos de servicios.
En la páginaGrupos de servicios, seleccione el grupo de servicios que ha creado y haga clic enModificar.
En la páginaGrupos de servicios de equilibrio de carga, haga clic enMiembros del grupode
En la páginaEnlace de miembros del grupo de servicios, seleccione el servidor que ha creado y haga clic enModificar.
EnDomain Based Service TTL, introduzca el valor TTL.
Para sobrescribir el valor TTL a nivel global:
Vaya aAdministración del tráfico>Equilibrio de carga>Cambiar parámetros de equilibrio de carga.
EnDomain Based Service TTL, introduzca el valor TTL.
Nota: Si el valor TTL del servidor basado en dominio se establece en 0, se utiliza el valor TTL del paquete de datos.
Especificar servidores de nombres diferentes para enlaces de nombres de dominio y grupos de servicios
Puede configurar diferentes servidores de nombres para diferentes nombres de dominio en un grupo específico. Establecer el parámetro nameServer es opcional mientras se vincula un servidor DBS al grupo de servicios. Cuando no se especifica un servidor de nombres al vincular a un miembro al grupo de servicios, se tiene en cuenta el servidor de nombres configurado globalmente.
Especificar servidores de nombres al vincular un servidor a grupos de servicios mediante la CLI
En la línea de comandos, escriba:
bind serviceGroup ( [-nameServer ] [-dbsTTL ])
Ejemplo:
bind servicegroup svc_grp_1 web_serv -ns.nameserver.com 10.102.27.155 -dbsTTL 10
Especificar servidores de nombres al vincular un servidor a grupos de servicios mediante la GUI
Vaya aAdministración del tráfico>Equilibrio de carga>Grupos de servicios.
En la páginaGrupos de servicios, seleccione el grupo de servicios que ha creado y haga clic enModificar.
En la páginaGrupos de servicios de equilibrio de carga, haga clic enMiembros del grupode
En la páginaEnlace de miembros del grupo de servicios, seleccione el servidor que ha creado y haga clic enModificar.
EnServidorde nombres, especifique el nombre del servidor de nombres al que debe enviarse la consulta del dominio enlazado.