Asigna dominios personalizados

Puedes usar un dominio personalizado en lugar de la dirección predeterminada que proporciona Cloud Run para un servicio implementado.

Si deseas usar un dominio personalizado para un servicio, asigna el servicio al dominio personalizado y, luego, actualiza los registros DNS. Puedes mapear un servicio a un dominio, como example.com, o a un subdominio, como subdomain.example.com.

No es posible mapear dominios personalizados a los servicios de Cloud Run (completamente administrado) en las siguientes regiones:

  • asia-east2
  • asia-northeast2
  • asia-northeast3
  • asia-southeast1
  • asia-southeast2
  • asia-south1
  • australia-southeast1
  • europe-west2
  • europe-west3
  • europe-west6
  • northamerica-northeast1
  • southamerica-east1

Si usas HTTPS, se aplican las siguientes consideraciones:

  • Para Cloud Run (completamente administrado), se emite y se renueva de forma automática un certificado administrado para conexiones HTTPS cuando mapeas un servicio a un dominio personalizado. Ten en cuenta que el aprovisionamiento del certificado SSL suele demorar alrededor de 15 minutos, pero puede tardar hasta 24 horas. No puedes subir y usar tus propios certificados.

  • En cuanto a Cloud Run for Anthos en Google Cloud, para que los mapeos de dominios funcionen de forma correcta, debes usar la función de certificados TLS administrados o proporcionar tus propios certificados..

Puedes mapear varios dominios personalizados al mismo servicio de Cloud Run.

Antes de comenzar

Compra un dominio nuevo, a menos que ya tengas uno que desees usar. Puedes usar cualquier registrador de nombres de dominio, pero si usas Google Domains o Cloud Domains, el dominio se verifica de forma automática para Cloud Run, por lo que no tendrás que realizar el proceso de verificación de dominio.

Si deseas registrar un dominio con Cloud Domains, consulta Registra un dominio con Cloud Domains en la consola de Cloud Run.

Mapea un dominio personalizado a un servicio

Puedes usar Google Cloud Console o la herramienta de línea de comandos de gcloud para mapear un dominio personalizado a un servicio.

Si usas WebSockets en Cloud Run for Anthos en Google Cloud, primero debes habilitar la compatibilidad con WebSocket para tu dominio personalizado.

Consulta cómo habilitar la compatibilidad de WebSocket para Cloud Run for Anthos en Google Cloud.

Habilita la compatibilidad de WebSocket para dominios personalizados en Cloud Run for Anthos en Google Cloud

Ejecuta el siguiente comando de kubectl para crear un objeto EnvoyFilter de Istio con allow_connect: true:

cat <<EOF | kubectl apply -f -
apiVersion: networking.istio.io/v1alpha3
kind: EnvoyFilter
metadata:
  name: allowconnect-cluser-local-gateway
  namespace: gke-system
spec:
  workloadSelector:
    labels:
      app: cluster-local-gateway
  configPatches:
  - applyTo: NETWORK_FILTER
    match:
      listener:
        portNumber: 80
        filterChain:
          filter:
            name: "envoy.http_connection_manager"
    patch:
      operation: MERGE
      value:
        typed_config:
          "@type": "type.googleapis.com/envoy.config.filter.network.http_connection_manager.v2.HttpConnectionManager"
          http2_protocol_options:
            allow_connect: true
EOF

Console

  1. Abre la página Mapeos de dominios en Google Cloud Console:
    página 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. En la página Mapeos de dominios, haz clic en Agregar asignación.

  3. En la lista desplegable del formulario Add Mapping (Agregar asignación), selecciona el servicio al que le asignarás el dominio personalizado:

    Agrega asignaciones de dominios

  4. Ingresa el nombre de dominio.

  5. Haz clic en Continue (Continuar).

  6. En Cloud Run (completamente administrado), deberás verificar la propiedad de un dominio antes de poder usarlo, a menos que hayas comprado el dominio a Google. Si deseas asignar subdomain.example.com, debes verificar la propiedad de example.com. Para obtener más información sobre la verificación de la propiedad de dominios, consulta la ayuda de la Central para webmasters.

  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.

Línea de comandos

  1. Solo para Cloud Run (completamente administrado), debes verificar la propiedad del dominio la primera vez que lo uses en el proyecto de Google Cloud, a menos que hayas comprado el dominio personalizado a Google. Puedes determinar si el dominio personalizado que deseas usar se verificó mediante el siguiente comando:

    gcloud domains list-user-verified

    Si es necesario verificar la propiedad del dominio, abre la página de verificación de la Central para webmasters:

    gcloud domains verify BASE-DOMAIN

    En el ejemplo anterior, BASE-DOMAIN es el dominio base que deseas verificar. Por ejemplo, si deseas asignar subdomain.example.com, debes verificar la propiedad de example.com.

    En la Central para webmasters, completa la verificación de propiedad del dominio. Si deseas obtener más información, consulta la ayuda de la Central para webmasters.

  2. Asigna el servicio al dominio personalizado:

    gcloud beta run domain-mappings create --service SERVICE --domain DOMAIN
    • Reemplaza SERVICE por el nombre del servicio.
    • Reemplaza DOMAIN por el dominio personalizado, por ejemplo, example.com o subdomain.example.com.
  3. Si usas Cloud Run for Anthos en Google Cloud, reserva la dirección IP asociada con el balanceador de cargas para el servicio de la puerta de enlace de entrada de Istio como una dirección IP estática:

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

    Reemplaza los siguientes elementos:

    • ADDRESS-NAME por el nombre que deseas asignar a la IP estática
    • EXTERNAL-IP por la dirección IP en el registro A que obtuviste en el paso anterior mediante gcloud run domain-mapping describe
    • REGION por la región que usas (no es la zona del clúster)

Puerta de enlace de entrada de Istio de Cloud Run

Para obtener la IP externa de la puerta de enlace de entrada de Istio, ejecuta lo siguiente:

kubectl get svc ISTIO-GATEWAY -n NAMESPACE 
Reemplaza ISTIO-GATEWAY y NAMESPACE de la siguiente manera:
Versión del clúster ISTIO-GATEWAY NAMESPACE
1.15.3-gke.19 y posteriores
1.14.3-gke.12 y posteriores
1.13.10-gke.8 y posteriores
istio-ingress gke-system
Todas las demás versiones istio-ingressgateway istio-system

El resultado se ve de la siguiente manera:

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

La EXTERNAL-IP del balanceador de cargas es la dirección IP que debes usar.

Agrega los registros DNS al registrador de dominios

Después de asignar el servicio a un dominio personalizado en Cloud Run, debes actualizar los registros DNS en el registrador de dominios. Para tu comodidad, Cloud Run genera y muestra los registros DNS que debes ingresar. Debes agregar estos registros que apuntan al servicio de Cloud Run en el registrador de dominios para que el mapeo 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, sigue estos pasos:

    Console

    1. Ve a la página Asignaciones de dominios de Cloud Run:
      Página Asignaciones de dominios

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

    selecciona los registros DNS

    Línea de comandos

    gcloud beta run domain-mappings describe --domain [DOMAIN]

    Reemplaza [DOMAIN] por el dominio personalizado, por ejemplo, example.com o subdomain.example.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 Cloud Run.

  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.example.com.
    • Usa el nombre @ para asignar example.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.example.com. Ten en cuenta que el certificado SSL 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 Central para webmasters:

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

    https://www.google.com/webmasters/verification/home

  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 Cloud Console:

    Ir a la página Cuentas de servicio

Asignación de la ruta base: no se admite

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 example.com/users. Cloud Run solo te permite asignar un dominio a /, no a una ruta base específica. Por lo tanto, cualquier enrutamiento de ruta debe controlarse con un router dentro del contenedor del servicio o mediante Firebase Hosting.

Registra un dominio con Cloud Domains en la consola de Cloud Run

Para registrar un dominio en Cloud Domains dentro de la consola de Cloud Run, sigue estos pasos:

  1. Ir a Cloud Run
  2. Haz clic en Administrar dominios personalizados.
  3. Haz clic en Registrar dominio.
  4. Sigue las instrucciones de Registra un dominio para completar el proceso de registro.
  5. Mapea tu dominio a Cloud Run y agrega registros DNS al registrador de dominios.