Registro de un subdominio DNS para un NLB
Infraestructura clásica
Este contenido es específico de los NLB en clústeres clásicos. Para clústeres de VPC, consulte Registro de un nombre de host de equilibrador de carga de VPC con un subdominio de DNS.
Una vez haya configurado los equilibradores de carga de red (NLB), puede crear entradas de DNS para las IP de NLB creando subdominios. También puede configurar los supervisores de TCP/HTTP (S) para comprobar el estado de las direcciones IP de NLB detrás de cada subdominio.
- Subdominio
- Cuando se crea un NLB público en un clúster de una sola zona o multizona, se puede exponer la app a Internet creando un subdominio para la dirección IP del NLB. Además, IBM Cloud se ocupa de la generación y del mantenimiento del certificado
SSL comodín para el subdominio. En clústeres multizona, se puede crear un subdominio y, en cada zona, añadir la dirección IP de NLB a esa entrada de DNS del subdominio. Por ejemplo, si ha desplegado varios NLB para su app en tres zonas en
el EE.UU. sur, puede crear el subdominio
mycluster-a1b2cdef345678g9hi012j3kl4567890-0001.us-south.containers.appdomain.cloudpara las tres direcciones IP de NLB. Cuando un usuario accede al subdominio de su app, el cliente accede a una de estas direcciones IP al azar y la solicitud se envía a ese NLB.
Actualmente no se pueden crear subdominios para los NLB privados.
Cuando se utiliza la supervisión de HTTP, el agente de usuario predeterminado para el trabajo de supervisión es NS1 HTTP Monitoring Job.
- Supervisor de comprobación de estado
- Habilite las comprobaciones de estado en las direcciones IP de NLB detrás de un solo subdominio para determinar si están disponibles o no. Cuando se habilita un supervisor para el subdominio, el supervisor de estado comprueba cada IP de NLB
y mantiene actualizados los resultados de búsqueda de DNS en base a estas comprobaciones de estado. Por ejemplo, si los NLB tienen las direcciones IP
1.1.1.1,2.2.2.2y3.3.3.3, una operación normal de búsqueda de DNS del subdominio devuelve las 3 IP y el cliente accede a 1 de ellas de forma aleatoria. Si el NLB con la dirección IP3.3.3.3deja de estar disponible por cualquier motivo, por ejemplo debido a una anomalía de zona, la comprobación de estado de esa IP falla, el supervisor elimina la IP fallida desde el subdominio y la búsqueda de DNS devuelve sólo las IP en buen estado,1.1.1.1y2.2.2.2.
Puede ver todos los subdominios que están registrados para las IP de NLB en el clúster, ejecutando el mandato siguiente.
ibmcloud oc nlb-dns ls --cluster CLUSTER_NAME_OR_ID
Las actualizaciones de microservicios de DNS son asíncronas y pueden tardar varios minutos en aplicarse. Tenga en cuenta que si ejecuta un mandato ibmcloud oc nlb-dns y recibe un mensaje de confirmación 200, es posible que tenga que
esperar a que se implementen los cambios. Para comprobar el estado del subdominio, ejecute ibmcloud oc nlb-dns ls y busque la columna Status en la salida.
Registro de las IP de NLB en un subdominio de DNS
Exponga la app a la Internet pública creando un subdominio para la dirección IP del equilibrador de carga de red (NLB).
Antes de empezar:
- Revise las siguientes limitaciones.
- No se pueden crear subdominios para los NLB privados.
- Puede registrar hasta 128 subdominios. Este límite se puede aumentar a petición abriendo un caso de soporte.
- Cree un NLB para la app en un clúster de una sola zona o cree NLB en cada zona de un clúster multizona.
Para crear un subdominio para una o varias direcciones IP de NLB:
-
Obtenga la dirección EXTERNAL-IP para su NLB. Si tiene NLB en cada zona de un clúster multizona que expone una app, obtenga los IP para cada NLB.
oc get svcEn la siguiente salida de ejemplo, las EXTERNAL-IPs de NLB son
168.2.4.5y88.2.4.5.NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE lb-myapp-dal10 LoadBalancer 172.21.xxx.xxx 168.2.4.5 1883:30303/TCP 6d lb-myapp-dal12 LoadBalancer 172.21.xxx.xxx 88.2.4.5 1883:31303/TCP 6d -
Registre la IP creando un subdominio de DNS. Para especificar varias direcciones IP, utilice varias
--ipopciones.ibmcloud oc nlb-dns create classic --cluster <cluster_name_or_id> --ip <NLB_IP> --ip <NLB2_IP> -
Verifique que se ha creado el subdominio.
ibmcloud oc nlb-dns ls --cluster <cluster_name_or_id>Salida de ejemplo
Hostname IP(s) Health Monitor SSL Cert Status SSL Cert Secret Name mycluster-a1b2cdef345678g9hi012j3kl4567890-0001.us-south.containers.appdomain.cloud ["168.2.4.5"] None created <certificate> -
Opcional: configure un dominio personalizado que apunte al subdominio proporcionado por IBM que ha creado en el paso anterior.
- Registra un dominio personalizado poniéndote en contacto con tu proveedor de servicios de nombres de dominio (DNS).
- Registre un dominio personalizado utilizando IBM Cloud DNS.
También puede registrar un dominio personalizado utilizando la anotación
service.kubernetes.io/ibm-load-balancer-cloud-provider-dns-nameen la configuración del balanceador de carga. -
Defina un alias para el dominio personalizado especificando el subdominio proporcionado por IBM como CNAME (Registro de nombre canónico).
-
En un navegador web, escriba el URL para acceder a la app a través del subdominio que ha creado.
A continuación, puede habilitar comprobaciones de estado en el subdominio mediante la creación de un supervisor de estado.
Formato del subdominio
Los subdominios para los NLB siguen el formato <cluster_name>-<globally_unique_account_HASH>-0001.<region>.containers.appdomain.cloud.
Por ejemplo un subdominio que haya creado para un NLB podría ser así: mycluster-a1b2cdef345678g9hi012j3kl4567890-0001.us-south.containers.appdomain.cloud. En la tabla siguiente se describe cada componente del subdominio.
| Componente de subdominio de NLB | Descripción |
|---|---|
* |
El carácter comodín para el subdominio está registrado de forma predeterminada para el clúster. |
<cluster_name> |
El nombre del clúster. - Si el nombre del clúster tiene 26 caracteres o menos y el nombre del clúster es exclusivo en esta región, se incluye el nombre del clúster completo y no se modifica:
|
<globally_unique_account_HASH> |
Se crea un HASH globalmente exclusivo para su cuenta de IBM Cloud. Todos los subdominios que cree para NLB en clústeres de su cuenta utilizan este HASH globalmente exclusivo. |
0001 |
Actúa como contador para cada subdominio que cree. |
<region> |
La región donde se ha creado el clúster. |
containers.appdomain.cloud |
El subdominio de los subdominios de Red Hat OpenShift on IBM Cloud. |
Habilitación de comprobaciones de estado en un subdominio mediante la creación de un supervisor de estado
Habilite las comprobaciones de estado en las direcciones IP de NLB detrás de un solo subdominio para determinar si están disponibles o no.
Si utiliza políticas de red pre-DNAT de Calico, grupos de seguridad de VPC, listas de control de acceso(ACL)de VPC u otra solución de cortafuegos personalizada para bloquear el tráfico entrante a los servicios Ingress o de enrutador, debe permitir el tráfico entrante desde los puntos finales de supervisión de estado. Para obtener más información, consulte la documentación sobre cómo permitir el tráfico de red entrante para la supervisión de subdominios de entrada.
Antes de empezar, registre las IP de NLB en un subdominio de DNS.
-
Obtenga el nombre del subdominio. En la salida, observe que el host tiene el Estado de supervisor
Unconfigured.ibmcloud oc nlb-dns monitor ls --cluster <cluster_name_or_id>Salida de ejemplo
Hostname Status Type Port Path mycluster-a1b2cdef345678g9hi012j3kl4567890-0001.us-south.containers.appdomain.cloud Unconfigured N/A 0 N/A -
Cree un supervisor de comprobación de estado para el subdominio. Si no incluye un parámetro de configuración, se utiliza el valor predeterminado.
ibmcloud oc nlb-dns monitor configure --cluster <cluster_name_or_id> --nlb-host <host_name> --enable --type <type> --path <path> --timeout <timeout> --interval <interval> --port <port> --header <header>-c, --cluster <cluster_name_or_ID>- Obligatorio: el nombre o el ID del clúster en el que está registrado el subdominio.
--nlb-host <host_name>- Obligatorio: el subdominio para el que desea habilitar un supervisor de comprobación de estado.
--enable- Incluye esta opción para activar un nuevo monitor de comprobación de estado para un subdominio.
--type <type>- El protocolo que se utiliza para la comprobación de estado:
HTTP,HTTPSoTCP. Valor predeterminado:HTTP. --path <path>- Cuando
typeesHTTPS: la vía de acceso de punto final con la que se realiza la comprobación de estado. Valor predeterminado:/ --timeout <timeout>- El tiempo de espera, en segundos, antes de que se considere que no se puede establecer contacto con la IP. La comprobación de estado espera los segundos especificados en el parámetro
intervalantes de intentar acceder a la IP de nuevo. El valor debe ser un número entero comprendido entre 1 y 60. Valor predeterminado:5 --interval <interval>- El intervalo, en segundos, entre cada comprobación de estado. Los intervalos cortos pueden mejorar el tiempo de migración tras error, pero aumentar la carga en los IP. El valor debe ser un número entero comprendido entre 60 y 300. Valor
predeterminado:
60. --port <port>- El número de puerto al que conectar para la comprobación de estado. Cuando
typeesTCP, este parámetro es obligatorio. CuandotypeesHTTPoHTTPS, sólo es necesario definir el puerto si se utiliza un puerto distinto de 80 para HTTP o de 443 para HTTPS. Valor predeterminado para TCP:0. Valor predeterminado para HTTP:80. Valor predeterminado para HTTPS:443. --header <header>- Requerido cuando
typees oHTTPHTTPS: HTTP. Los encabezados de solicitud para la comprobación de estado se limitan al encabezado Host. Esta bandera solo es válida para el tipoHTTPoHTTPS. Este indicador admite valores en el siguiente formato:--header Header-Name=value. Cuando se actualiza un supervisor, las cabeceras existentes se sustituyen por las que especifique. Para eliminar todos los encabezados existentes, especifica el indicador con un valor vacío--header "".
Mandato de ejemplo
ibmcloud oc nlb-dns monitor configure --cluster mycluster --nlb-host mycluster-a1b2cdef345678g9hi012j3kl4567890-0001.us-south.containers.appdomain.cloud --enable --type HTTPS --path /alive --timeout 5 --interval 60 --header Host=example.com -
Verifique que el monitor de comprobación de estado esté configurado con los valores correctos.
ibmcloud oc nlb-dns monitor get --cluster <cluster_name_or_id> --nlb-host <host_name>Salida de ejemplo
Status: enabled Type: https Method: GET Path: /alive Expected Codes: 2xx Port: 443 Timeout: 5 Interval: 60 Headers: Host: example.com -
Visualice el estado de comprobación de estado del subdominio.
ibmcloud oc nlb-dns monitor ls --cluster <cluster_name_or_id>Salida de ejemplo
Hostname Status Type Port Path mycluster-a1b2cdef345678g9hi012j3kl4567890-0001.us-south.containers.appdomain.cloud enabled https 443 /alive
Actualización y eliminación de IP y supervisores de los subdominios
Puede añadir y eliminar direcciones IP de NLB de los subdominios que ha generado. También puede inhabilitar y habilitar supervisores de comprobación de estado para los subdominios según sea necesario.
IP de NLB
Si posteriormente añade más NLB en otras zonas del clúster para exponer la misma app, puede añadir las IP de NLB al subdominio existente.
ibmcloud oc nlb-dns add --cluster <cluster_name_or_id> --ip <NLB_IP> --ip <NLB2_IP> ... --nlb-host <host_name>
También puede eliminar las direcciones IP de los NLB que ya no desee que estén registradas en un subdominio. Tenga en cuenta que debe ejecutar el siguiente mandato para cada dirección IP que desee eliminar. Si elimina todas las IP de un subdominio, el subdominio sigue existiendo, pero no hay ninguna IP asociada al mismo.
ibmcloud oc nlb-dns rm classic --cluster <cluster_name_or_id> --ip <ip> --nlb-host <host_name>
Supervisores de comprobación de estado
Si tiene que cambiar la configuración del supervisor de estado, puede cambiar los valores específicos. Incluye únicamente las opciones de configuración que desees modificar.
ibmcloud oc nlb-dns monitor configure --cluster <cluster_name_or_id> --nlb-host <host_name> --type <type> --path <path> --timeout <timeout> --interval <interval> --port <port> --header <header>
Puede inhabilitar el supervisor de comprobación de estado para un subdominio en cualquier momento ejecutando el mandato siguiente:
ibmcloud oc nlb-dns monitor disable --cluster <cluster_name_or_id> --nlb-host <host_name>
Para volver a habilitar un supervisor para un subdominio, ejecute el mandato siguiente:
ibmcloud oc nlb-dns monitor enable --cluster <cluster_name_or_id> --nlb-host <host_name>