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
Debes tener o comprar el dominio que desees mapear a los servicios. Puedes usar cualquier registrador de nombres de dominio, pero si usas Cloud Domains, el dominio se verifica de forma automática para Knative serving, por lo que no tendrás que realizar el proceso de verificación del dominio.
Si deseas registrar un dominio con Cloud Domains, consulta Registra un dominio con Cloud Domains en la consola de Knative serving.
Debes tener al menos la función de desarrollador de Kubernetes Engine de la administración de identidades y accesos o permisos equivalentes.
Para habilitar HTTPS con tus asignaciones de dominio personalizadas, debes configurar certificados TLS administrados o configurar tus propios certificados.
Para asignar un dominio personalizado al clúster o los servicios en una red interna privada, debes inhabilitar los certificados TLS administrados.
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:
- Reserva la dirección IP de tu balanceador de cargas (opcional).
- Asigna tus servicios o el clúster al dominio personalizado en Knative serving.
- 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:
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:- Ve a la página de GKE en la consola de Google Cloud:
Ir a GKE - Haz clic en Ingress y servicios.
- 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
. - 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 copiar00.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.
- Ve a la página de GKE en la consola de Google Cloud:
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
Abre la página Asignaciones de dominios en la consola de Google Cloud:
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.
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.
En la lista desplegable del formulario Agregar asignación, selecciona el servicio al que deseas asignar tu dominio personalizado:
Ingresa el nombre de dominio. Por ejemplo,
your-domain.com
osubdomain.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 deyour-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 como
http://{service}.{namespace}.{your-domain.com}
, por lo tanto, si tienes un servicio entest.default.your-domain.com
. No debes crear una asignación de dominio al mismo subdominiotest.default.
your-domain.com
.
- 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,
Haga clic en Continuar.
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.
Haz clic en Listo.
gcloud
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
osubdomain.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 deyour-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 como
http://{service}.{namespace}.{your-domain.com}
, por lo tanto, si tienes un servicio entest.default.your-domain.com
. No debes crear una asignación de dominio al mismo subdominiotest.default.
your-domain.com
.
- 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,
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
Abre la página Asignaciones de dominios en la consola de Google Cloud:
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.
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.
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.
En la lista desplegable del formulario Agregar asignación, selecciona el clúster al que deseas asignar tu dominio personalizado:
Ingresa el nombre de dominio. Por ejemplo,
your-domain.com
osubdomain.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 deyour-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 como
http://{service}.{namespace}.{your-domain.com}
, por lo tanto, si tienes un servicio entest.default.your-domain.com
. No debes crear una asignación de dominio al mismo subdominiotest.default.
your-domain.com
.
- 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,
Haga clic en Continuar.
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.
Haz clic en Listo.
kubectl
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
osubdomain.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 deyour-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 como
http://{service}.{namespace}.{your-domain.com}
, por lo tanto, si tienes un servicio entest.default.your-domain.com
. No debes crear una asignación de dominio al mismo subdominiotest.default.
your-domain.com
.
- 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,
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.
A fin de recuperar la información del Registro DNS para los mapeos de dominios, haz lo siguiente:
Console
Ve a la página de asignaciones de dominios de Knative serving:
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
osubdomain.your-domain.com
.Necesitas todos los registros que se muestran en el encabezado
resourceRecords
.Accede a tu cuenta en el registrador de dominios y, luego, abre la página de la configuración de DNS.
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.
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
oCNAME
. - Usa el nombre
www
para asignar awww.your-domain.com
. - Usa el nombre
@
para mapearyour-domain.com
. - Usa el comodín
*
para asignar a*.your-domain.com
.
- Selecciona el tipo que se muestra en el registro DNS en el paso anterior:
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 dedig
en línea, para confirmar que los registros DNS se hayan actualizado de forma correcta.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:
Dirígete a esta dirección en el navegador web:
En Propiedades, haz clic en el dominio al que deseas agregarle un usuario o una cuenta de servicio.
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:
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:
Ve a la página de asignaciones de dominios de Knative serving:
Haz clic en Registrar dominio.
Seguir las instrucciones de Registra un dominio para completar el proceso de registro
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.