Asigna dominios personalizados

Configura dominios personalizados para acceder a tus servicios de Knative serving. Puedes asignar uno o más dominios personalizados a un servicio individual o puedes asignar un solo dominio a tu clúster que usen todos los servicios. La asignación de dominios personalizados puede ser el dominio base, como your-domain.com, o un subdominio, como your-subdomain.your-domain.com.

De forma predeterminada, los servicios que implementas en los clústeres de Knative serving se configuran en el dominio base nip.io. Esto te permite probar de inmediato tus servicios en una URL como la siguiente:

http://{SERVICE_NAME}.{NAMESPACE}.kuberun.{EXTERNAL_IP}.nip.io

Obtén más información sobre los dominios de prueba.

Antes de comenzar

Asigna un dominio personalizado

Puedes usar la consola de Google Cloud o las herramientas de línea de comandos para asignar tu dominio personalizado.

Por lo general, para configurar un dominio personalizado, haz lo siguiente:

  1. Reserva la dirección IP de tu balanceador de cargas (opcional).
  2. Asigna tus servicios o el clúster al dominio personalizado en Knative serving.
  3. Actualiza tus registros DNS en tu registrador de dominios.

Reserva la dirección IP del balanceador de cargas

Cuando se instala Knative serving, el controlador de entrada de Istio crea un balanceador de cargas con una dirección IP disponible.

Según el clúster de GKE, es posible que debas reservar la dirección IP del balanceador de cargas para el controlador de entrada de Istio:

Fuera de Google Cloud
Consulta la documentación del entorno en el que ejecutas el clúster de GKE para determinar cómo se administran las direcciones IP y si la dirección IP del balanceador de cargas es estática. Consulta también las páginas de configuración de tu clúster de GKE. Por ejemplo, según cómo configuraste el balanceo de cargas para Google Distributed Cloud, es posible que ya hayas reservado esas direcciones IP.
En Google Cloud

Debes reservar la dirección IP externa del balanceador de cargas para asegurarte de que sea la misma si tu servicio de entrada se borra. Según la configuración de tu clúster, la dirección IP está disponible externamente o solo es internamente, por ejemplo, clústeres privados.

Balanceadores de cargas internos en Google Cloud
Consulta la siguiente página para obtener detalles sobre cómo reservar la dirección IP del balanceador de cargas interno: Reserva una dirección IP interna estática
Balanceadores de cargas externos en Google Cloud
Para reservar la dirección IP de tu balanceador de cargas externo, haz lo siguiente:
  1. Obtén la dirección IP del balanceador de cargas:

    Console

    Para obtener la dirección IP externa del balanceador de cargas de la consola de Google Cloud, sigue estos pasos:
    1. Ve a la página de GKE en la consola de Google Cloud:
      Ir a GKE
    2. Haz clic en Ingress y servicios.
    3. Identifica el servicio que es la entrada de Istio de tu clúster. El Tipo del servicio será Balanceador de cargas externo y el Nombre será istio-ingressgateway.
    4. Una vez que encuentres el controlador de entrada de Istio de tu clúster, copia su Extremo. Esta será la dirección IP sin el número de puerto. Por ejemplo, es posible que veas que 00.000.000.000:11 aparece como un extremo, pero solo necesitas copiar 00.000.000.000.

    kubectl

    A fin de obtener la IP externa para el balanceador de cargas, ejecuta el siguiente comando:

    kubectl get svc istio-ingressgateway -n ASM-INGRESS-NAMESPACE
    

    Reemplaza ASM-INGRESS-NAMESPACE por el espacio de nombres en el que se encuentra tu entrada de Cloud Service Mesh. Especifica istio-system si instalaste Cloud Service Mesh usando su configuración predeterminada.

    El resultado es similar al siguiente:

    NAME                   TYPE           CLUSTER-IP     EXTERNAL-IP  PORT(S)
    istio-ingressgateway   LoadBalancer   XX.XX.XXX.XX   pending      80:32380/TCP,443:32390/TCP,32400:32400/TCP
    

    El valor EXTERNAL-IP es la dirección IP externa del balanceador de cargas.

  2. Reserva la dirección IP como una dirección IP estática:

    gcloud compute addresses create ADDRESS-NAME --addresses EXTERNAL-IP --region REGION

    Reemplaza lo siguiente:

    • ADDRESS-NAME por el nombre que deseas asignar a la IP estática
    • EXTERNAL-IP por la dirección IP externa del balanceador de cargas que obtuviste en el paso anterior
    • REGION por la región en la que se encuentra el clúster.

Después de obtener la dirección IP de tu balanceador de cargas, puedes usarla para asignar tu dominio personalizado:

Asigna servicios

Elige uno de los siguientes métodos para asignar tu dominio personalizado a un servicio de Knative serving. Cada servicio individual se puede asignar a varios dominios.

Console

  1. Abre la página Asignaciones de dominios en la consola de Google Cloud:

    Ir a Mapeos de dominios

    Ten en cuenta que si tu ventana de visualización es demasiado pequeña, no se muestra el botón Mapping Custom Domains y debes hacer clic en el ícono de puntos suspensivos verticales en la esquina derecha de la página.

  2. Haz clic en Agregar asignación y selecciona Agregar asignación de dominio de servicio para asignar un dominio a un servicio individual. Puedes asignar varios dominios a cada servicio.

  3. En la lista desplegable del formulario Agregar asignación, selecciona el servicio al que deseas asignar tu dominio personalizado:

  4. Ingresa el nombre de dominio. Por ejemplo, your-domain.com o subdomain.your-domain.com. Requisitos del dominio:

    • No se admite la asignación de rutas base. El término ruta base hace referencia al nombre de la ruta de URL que sigue al nombre de dominio. Por ejemplo, users es la ruta base de your-domain.com/users. Knative serving solo te permite asignar un dominio a /, no a una ruta base específica. Por lo tanto, cualquier enrutamiento debe controlarse mediante un router en el contenedor del servicio o mediante Firebase Hosting.
    • No puedes asignar tu dominio a un subdominio que coincida con la URL de los servicios. Las URL a un servicio se definen comohttp://{service}.{namespace}.{your-domain.com}, por lo tanto, si tienes un servicio en test.default.your-domain.com. No debes crear una asignación de dominio al mismo subdominio test.default.your-domain.com.

  5. Haga clic en Continuar.

  6. Actualiza los registros DNS en el sitio web del registrador de dominios mediante los registros DNS que se muestran en el último paso. Puedes ver los registros en cualquier momento si haces clic en Registros DNS en el menú de acciones “…” de una asignación de dominio.

  7. Haz clic en Listo.

gcloud

  1. Asigna el servicio al dominio personalizado:

    gcloud run domain-mappings create --service SERVICE --domain DOMAIN

    Reemplaza lo siguiente:

    • SERVICE el nombre de tu servicio.
    • DOMAIN por tu dominio personalizado. Por ejemplo, your-domain.com o subdomain.your-domain.com. Requisitos de dominio:
      • No se admite la asignación de rutas base. El término ruta base hace referencia al nombre de la ruta de URL que sigue al nombre de dominio. Por ejemplo, users es la ruta base de your-domain.com/users. Knative serving solo te permite asignar un dominio a /, no a una ruta base específica. Por lo tanto, cualquier enrutamiento debe controlarse mediante un router en el contenedor del servicio o mediante Firebase Hosting.
      • No puedes asignar tu dominio a un subdominio que coincida con la URL de los servicios. Las URL a un servicio se definen comohttp://{service}.{namespace}.{your-domain.com}, por lo tanto, si tienes un servicio en test.default.your-domain.com. No debes crear una asignación de dominio al mismo subdominio test.default.your-domain.com.

Ahora que tu dominio personalizado está asignado a Knative serving, debes agregar registros DNS al registrador de dominios.

Asigna clústeres

Elige uno de los siguientes métodos para asignar tu dominio personalizado al clúster:

Console

  1. Abre la página Asignaciones de dominios en la consola de Google Cloud:

    Ir a Mapeos de dominios

    Ten en cuenta que si tu ventana de visualización es demasiado pequeña, no se muestra el botón Mapping Custom Domains y debes hacer clic en el ícono de puntos suspensivos verticales en la esquina derecha de la página.

  2. Haz clic en Agregar asignación y selecciona Agregar dominio predeterminado para asignar un dominio a todos los servicios del clúster. De forma predeterminada, los servicios nuevos que implementas usan el dominio asignado.

  3. Haz clic en la casilla de verificación para aplicar la asignación de dominio nueva a todos los servicios existentes en el clúster.

  4. En la lista desplegable del formulario Agregar asignación, selecciona el clúster al que deseas asignar tu dominio personalizado:

  5. Ingresa el nombre de dominio. Por ejemplo, your-domain.com o subdomain.your-domain.com. Requisitos del dominio:

    • No se admite la asignación de rutas base. El término ruta base hace referencia al nombre de la ruta de URL que sigue al nombre de dominio. Por ejemplo, users es la ruta base de your-domain.com/users. Knative serving solo te permite asignar un dominio a /, no a una ruta base específica. Por lo tanto, cualquier enrutamiento debe controlarse mediante un router en el contenedor del servicio o mediante Firebase Hosting.
    • No puedes asignar tu dominio a un subdominio que coincida con la URL de los servicios. Las URL a un servicio se definen comohttp://{service}.{namespace}.{your-domain.com}, por lo tanto, si tienes un servicio en test.default.your-domain.com. No debes crear una asignación de dominio al mismo subdominio test.default.your-domain.com.

  6. Haga clic en Continuar.

  7. Actualiza los registros DNS en el sitio web del registrador de dominios mediante los registros DNS que se muestran en el último paso. Puedes ver los registros en cualquier momento si haces clic en Registros DNS en el menú de acciones “…” de una asignación de dominio.

  8. Haz clic en Listo.

kubectl

  1. Ejecuta el siguiente comando para quitar el dominio base existente del ConfigMap config-domain y reemplazarlo por tu dominio personalizado:

    kubectl patch configmap config-domain --namespace knative-serving --patch \
    '{"data": {"nip.io": null, "DOMAIN": ""}}'

    Reemplaza DOMAIN por tu dominio personalizado. Por ejemplo, your-domain.com o subdomain.your-domain.com. Requisitos del dominio:

    • No se admite la asignación de rutas base. El término ruta base hace referencia al nombre de la ruta de URL que sigue al nombre de dominio. Por ejemplo, users es la ruta base de your-domain.com/users. Knative serving solo te permite asignar un dominio a /, no a una ruta base específica. Por lo tanto, cualquier enrutamiento debe controlarse mediante un router en el contenedor del servicio o mediante Firebase Hosting.
    • No puedes asignar tu dominio a un subdominio que coincida con la URL de los servicios. Las URL a un servicio se definen comohttp://{service}.{namespace}.{your-domain.com}, por lo tanto, si tienes un servicio en test.default.your-domain.com. No debes crear una asignación de dominio al mismo subdominio test.default.your-domain.com.

Ahora que tu dominio personalizado está asignado a Knative serving, debes agregar registros DNS al registrador de dominios.

Agrega los registros DNS al registrador de dominios

Después de asignar el servicio a un dominio personalizado en Knative serving, debes actualizar los registros DNS en el registrador de dominios. Para tu comodidad, Knative serving genera y muestra los registros DNS que debes ingresar. Debes agregar estos registros que apuntan al servicio de Knative serving en el registrador de dominios para que la asignación entre en vigor.

Si usas Cloud DNS como proveedor de DNS, consulta Agrega un registro.

  1. A fin de recuperar la información del Registro DNS para los mapeos de dominios, haz lo siguiente:

    Console

    1. Ve a la página de asignaciones de dominios de Knative serving:

      Ir a Mapeos de dominios

    2. Haz clic en el ícono de menú de 3 puntos verticales que se encuentra a la derecha del servicio y, luego, haz clic en REGISTROS DNS (DNS RECORDS) para ver todos los registros DNS:

    gcloud

    gcloud run domain-mappings describe --domain DOMAIN

    Reemplaza DOMAIN por tu dominio personalizado. Por ejemplo, your-domain.com o subdomain.your-domain.com.

    Necesitas todos los registros que se muestran en el encabezado resourceRecords.

  2. Accede a tu cuenta en el registrador de dominios y, luego, abre la página de la configuración de DNS.

  3. Ubica la sección de registros de host de la página de configuración del dominio y, luego, agrega cada uno de los registros de recursos que recibiste cuando asignaste el dominio al servicio de Knative serving.

  4. Cuando agregues los registros DNS anteriores a la cuenta en el proveedor de DNS, haz lo siguiente:

    • Selecciona el tipo que se muestra en el registro DNS en el paso anterior: A, AAAA o CNAME.
    • Usa el nombre www para asignar a www.your-domain.com.
    • Usa el nombre @ para mapear your-domain.com.
    • Usa el comodín * para asignar a *.your-domain.com.
  5. Guarda los cambios en la página de configuración de DNS de la cuenta del dominio. En la mayoría de los casos, la aplicación de estos cambios toma solo unos minutos, pero en algunos casos puede tomar varias horas, en función del registrador y el tiempo de actividad (TTL) de cualquier registro DNS anterior del dominio. Puedes usar una herramienta de dig, como esta versión de dig en línea, para confirmar que los registros DNS se hayan actualizado de forma correcta.

  6. Navega al servicio con la URL nueva para probar si funciona, por ejemplo, https://www.your-domain.com. Ten en cuenta que el Certificado SSL/TLS administrado puede tardar varios minutos en emitirse.

Agrega propietarios de dominios verificados a otros usuarios o cuentas de servicio

Cuando un usuario verifica un dominio, ese dominio solo se verifica en la cuenta de ese usuario. Esto significa que solo ese usuario puede agregar más asignaciones de dominio que usen ese dominio. Por lo tanto, para habilitar que otros usuarios agreguen asignaciones que usen ese dominio, debes agregarlos como propietarios verificados.

Si necesitas agregar propietarios verificados del dominio a otros usuarios o cuentas de servicio, puedes agregar permisos a través de la página Search Console:

  1. Dirígete a esta dirección en el navegador web:

    https://search.google.com/search-console/welcome

  2. En Propiedades, haz clic en el dominio al que deseas agregarle un usuario o una cuenta de servicio.

  3. Desplázate hacia abajo a la lista de Propietarios verificados, haz clic en Agregar un propietario y, a continuación, ingresa la dirección de correo electrónico de una Cuenta de Google o el ID de una cuenta de servicio.

    Para ver una lista de las cuentas de servicio, abre la página Cuentas de servicio en la consola de Google Cloud:

    Ir a la página Cuentas de servicio

Registra un dominio con Cloud Domains en la consola de Knative serving

Para registrar un dominio con Cloud Domains desde la consola de Knative serving, haz lo siguiente:

  1. Ve a la página de asignaciones de dominios de Knative serving:

    Ir a Mapeos de dominios

  2. Haz clic en Registrar dominio.

  3. Seguir las instrucciones de Registra un dominio para completar el proceso de registro

  4. Completa los pasos anteriores de esta página para asignar tu dominio a Knative serving y, luego, agrega registros DNS al registrador de dominios.

Soluciona problemas

Consulta los problemas habituales en Soluciona problemas de dominios personalizados y TLS administrados.