Cuando creas una instancia de máquina virtual (VM), Google Cloud crea un nombre de DNS interno a partir del nombre de la VM. A menos que especifiques un nombre de host personalizado, Google Cloud usa el nombre de DNS interno que se creó de forma automática como el nombre de host que proporciona a la VM.
Puedes crear una VM con un nombre de host personalizado y especificar cualquier nombre DNS completamente calificado. Los nombres de host personalizados son útiles a fin de mantener las convenciones o admitir requisitos para las aplicaciones que esperan un nombre de host en particular.
Incluso cuando especificas un nombre de host personalizado, Google Cloud creará el nombre de DNS interno de Compute Engine. Puedes conectarte a tu VM con este registro DNS interno creado automáticamente. El registro DNS interno se resuelve en el nombre de DNS interno y no en el nombre de host personalizado. Con los nombres de host personalizados, aún es necesario crear un registro DNS correspondiente en la zona adecuada, por ejemplo, mediante Cloud DNS.
Antes de comenzar
-
Configura la autenticación si aún no lo hiciste.
La autenticación es el proceso mediante el cual se verifica tu identidad para acceder a los servicios y las API de Google Cloud.
Para ejecutar un código o muestras desde un entorno de desarrollo local, puedes autenticarte en Compute Engine de la siguiente manera.
Selecciona la pestaña sobre cómo planeas usar las muestras en esta página:
Consola
Cuando usas la consola de Google Cloud para acceder a los servicios y las APIs de Google Cloud, no necesitas configurar la autenticación.
gcloud
-
Instala Google Cloud CLI y, luego, inicializa la ejecución del siguiente comando:
gcloud init
- Configura una región y una zona predeterminadas.
Terraform
Para usar las muestras de Terraform de esta página desde un entorno de desarrollo local, instala e inicializa la CLI de gcloud y, luego, configura las credenciales predeterminadas de la aplicación con tus credenciales de usuario.
- Instala Google Cloud CLI.
-
Para inicializar la CLI de gcloud, ejecuta el siguiente comando:
gcloud init
-
Crea credenciales de autenticación locales para tu Cuenta de Google:
gcloud auth application-default login
Para obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Go
Para usar las muestras de Go de esta página desde un entorno de desarrollo local, instala e inicializa la CLI de gcloud y, luego, configura las credenciales predeterminadas de la aplicación con tus credenciales de usuario.
- Instala Google Cloud CLI.
-
Para inicializar la CLI de gcloud, ejecuta el siguiente comando:
gcloud init
-
Crea credenciales de autenticación locales para tu Cuenta de Google:
gcloud auth application-default login
Para obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Java
Para usar las muestras de Java de esta página desde un entorno de desarrollo local, instala e inicializa la CLI de gcloud y, luego, configura las credenciales predeterminadas de la aplicación con tus credenciales de usuario.
- Instala Google Cloud CLI.
-
Para inicializar la CLI de gcloud, ejecuta el siguiente comando:
gcloud init
-
Crea credenciales de autenticación locales para tu Cuenta de Google:
gcloud auth application-default login
Para obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Node.js
Para usar las muestras de Node.js de esta página desde un entorno de desarrollo local, instala e inicializa la CLI de gcloud y, luego, configura las credenciales predeterminadas de la aplicación con tus credenciales de usuario.
- Instala Google Cloud CLI.
-
Para inicializar la CLI de gcloud, ejecuta el siguiente comando:
gcloud init
-
Crea credenciales de autenticación locales para tu Cuenta de Google:
gcloud auth application-default login
Para obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Python
Para usar las muestras de Python de esta página desde un entorno de desarrollo local, instala e inicializa la CLI de gcloud y, luego, configura las credenciales predeterminadas de la aplicación con tus credenciales de usuario.
- Instala Google Cloud CLI.
-
Para inicializar la CLI de gcloud, ejecuta el siguiente comando:
gcloud init
-
Crea credenciales de autenticación locales para tu Cuenta de Google:
gcloud auth application-default login
Para obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
REST
Para usar las muestras de la API de REST en esta página en un entorno de desarrollo local, debes usar las credenciales que proporcionas a la CLI de gcloud.
Instala Google Cloud CLI y, luego, inicializa la ejecución del siguiente comando:
gcloud init
-
Funciones obligatorias
Para obtener los permisos que necesitas para crear VM con un nombre de host personalizado, pídele a tu administrador que te otorgue el Administrador de instancias de Compute (v1) . (roles/compute.instanceAdmin.v1
) función de IAM en el proyecto.
Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso.
Este rol predefinido contiene los permisos necesarios para crear VM con un nombre de host personalizado. Para ver los permisos exactos que son necesarios, expande la sección Permisos requeridos:
Permisos necesarios
Se requieren los siguientes permisos para crear una VM con un nombre de host personalizado:
-
compute.instances.create
en el proyecto -
Si deseas usar una imagen personalizada para crear la VM, sigue estos pasos:
compute.images.useReadOnly
en la imagen -
Para usar una instantánea a fin de crear la VM, haz lo siguiente:
compute.snapshots.useReadOnly
en la instantánea -
Si quieres usar una plantilla de instancias para crear la VM, sigue estos pasos:
compute.instanceTemplates.useReadOnly
en la plantilla de instancias -
Para asignar una red heredada a la VM, ejecuta
compute.networks.use
en el proyecto. -
Si deseas especificar una dirección IP estática para la VM:
compute.addresses.use
en el proyecto -
Para asignar una dirección IP externa a la VM cuando se usa una red heredada, ejecuta
compute.networks.useExternalIp
en el proyecto -
A fin de especificar una subred para tu VM:
compute.subnetworks.use
en el proyecto o en la subred elegida -
Para asignar una dirección IP externa a la VM cuando se usa una red de VPC,
compute.subnetworks.useExternalIp
en el proyecto o en la subred elegida. -
Para configurar los metadatos de la instancia de VM para la VM,
compute.instances.setMetadata
en el proyecto. -
Para configurar etiquetas en la VM, haz lo siguiente:
compute.instances.setTags
en la VM -
Para configurar etiquetas en la VM, haz lo siguiente:
compute.instances.setLabels
en la VM -
A fin de configurar una cuenta de servicio para que la VM use:
compute.instances.setServiceAccount
en la VM -
Crear un disco nuevo para la VM:
compute.disks.create
en el proyecto -
Para conectar un disco existente en modo de solo lectura o de lectura y escritura, usa
compute.disks.use
en el disco. -
Para conectar un disco existente en modo de solo lectura, haz lo siguiente:
compute.disks.useReadOnly
en el disco
También puedes obtener estos permisos con funciones personalizadas o con otras funciones predefinidas
Limitaciones
Debes configurar manualmente el registro DNS para tu nombre de host personalizado. Los nombres de host personalizados no se resuelven mediante los registros creados automáticamente que proporciona el DNS interno de Compute Engine. Puedes usar cualquiera de los siguientes a fin de alojar el registro DNS para el nombre de host personalizado:
cualquier otro servidor de nombres de DNS público
No puedes cambiar un nombre de host personalizado después de crear la VM.
Convención de nombres
Los nombres de host personalizados deben cumplir con los requisitos de RFC 1035 para nombres de host válidos. Para cumplir con estos requisitos, los nombres de host personalizados deben cumplir con las siguientes especificaciones de formato:
- El nombre de host contiene al menos dos etiquetas que se describen de la siguiente manera:
- Cada etiqueta contiene expresiones regulares que incluyen solo estos caracteres:
[a-z]([-a-z0-9]*[a-z0-9])?
. - Las etiquetas se concatenan con un punto.
- Cada etiqueta tiene entre 1 y 63 caracteres.
- Cada etiqueta contiene expresiones regulares que incluyen solo estos caracteres:
- El nombre de host no supera los 253 caracteres.
No válido: Contiene una sola etiqueta.
my-host1234
Válido: Contiene tres etiquetas concatenadas con puntos.
my-host1234.example.com
Crea una VM con un nombre de host personalizado
Console
En la consola de Google Cloud, ve a la página Crea una instancia.
Especifica un Nombre para la VM. Para obtener más información, consulta Convención de asignación de nombres de recursos.
Expande la sección Opciones avanzadas y sigue estos pasos:
- Expande la sección Herramientas de redes.
- En el campo Nombre de host, especifica el nombre de host personalizado.
Realiza personalizaciones de VM adicionales, según sea necesario.
Para crear y, también, iniciar la VM, haz clic en Crear.
Paso siguiente: Configura tus registros DNS. Para obtener más información, consulta Administra registros.
gcloud
Con Google Cloud CLI, sigue las instrucciones para crear una instancia a partir de una imagen o una instantánea, agrega --hostname
y usa el comando gcloud compute instances create
de la siguiente manera:
gcloud compute instances create VM_NAME \ --hostname=HOST_NAME
Reemplaza lo siguiente:
VM_NAME
El nombre de la VMHOST_NAME
: El nombre de host del dominio completamente calificado que deseas asignar
Por ejemplo, para crear una VM myinstance
con el nombre de host personalizado test.example.com
, ejecuta el siguiente comando:
gcloud compute instances create myinstance \ --hostname=test.example.com
Paso siguiente: Configura tus registros DNS. Para obtener más información, consulta Administra registros.
Terraform
Puedes usar un recurso de Terraform para crear una instancia con un nombre de host personalizado con el argumento hostname
.
- En la consola de Google Cloud, ve a la página Instancias de VM.
- Haz clic en Crear instancia.
- Especifica los parámetros que desees.
- En la parte superior o inferior de la página, haz clic en Código equivalente y, luego, en la pestaña Terraform para ver el código de Terraform.
Paso siguiente: Configura tus registros DNS. Para obtener más información, consulta Administra registros.
Go
Java
Node.js
Python
REST
Sigue las instrucciones de la API para crear una instancia a partir de una imagen o una instantánea, pero especifica el campo hostname
en el cuerpo de la solicitud.
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances { "name": "VM_NAME", "hostname": "HOST_NAME", ... }
Reemplaza lo siguiente:
Verifica el nombre de host personalizado
Para las VM de Linux, puedes verificar el nombre de host con el comando de hostname -f
en la VM.
También puedes verificar el nombre de host personalizado con la consola de Google Cloud o Google Cloud CLI.
Console
A fin de ver el nombre de host personalizado de tu VM, ve a la página Instancias de VM.
Haz clic en el nombre de la instancia para abrir la página Detalles de instancia de VM.
Revisa la sección Nombre de host. El campo Nombre de host solo es visible si se configura un nombre de host personalizado.
gcloud
A fin de ver el nombre de host personalizado para tu instancia con gcloud compute
, usa el subcomando instances describe
con una marca --format
para filtrar el resultado. Reemplaza VM_NAME
por el nombre de la VM.
gcloud compute instances describe VM_NAME \ --format='get(hostname)'
Por ejemplo, a fin de ver el nombre de host personalizado de una VM llamada myinstance
, ejecuta el siguiente comando.
gcloud compute instances describe myinstance \ --format='get(hostname)'
El resultado podría parecerse al siguiente:
test.example.com
Si no se configura un nombre de host personalizado, el resultado de este comando aparece en blanco.