Cada instancia de máquina virtual (VM) almacena sus metadatos en un servidor de metadatos. La VM obtiene acceso de manera automática a la API del servidor de metadatos sin ninguna autorización adicional. Los metadatos se almacenan como pares clave-valor.
En este documento, se proporciona una descripción general de los metadatos de VM y se explican los tipos y las propiedades de los metadatos de VM.
Usos de metadatos de VM
En las siguientes secciones, se describen algunas situaciones en las que puedes usar entradas de metadatos para administrar tus VM.
Secuencia de comandos de inicio y apagado
El servidor de metadatos es muy útil cuando se usa en combinación con las secuencias de comandos de inicio y apagado porque puedes usarlo para obtener información única sobre una VM, sin autorización adicional y de manera programática.
Por ejemplo, puedes escribir una secuencia de comandos de inicio que obtenga el par clave-valor de metadatos para la IP externa de una VM y usarla en tu secuencia de comandos a fin de configurar una base de datos. Debido a que las claves de metadatos predefinidas de Compute Engine son las mismas en cada VM, puedes volver a usar la secuencia de comandos sin tener que actualizarla para cada VM. Esto te ayudará a crear un código menos frágil para las aplicaciones.
- Para obtener más información sobre las secuencias de comandos de inicio, consulta la descripción general de la secuencia de comandos de inicio.
- Para obtener más información sobre las secuencias de comandos de apagado, consulta Ejecuta secuencias de comandos de apagado.
Mantenimiento de host
El servidor de metadatos proporciona información sobre una opción de programación de una VM mediante la entrada del directorio de metadatos scheduling/
y el atributo maintenance-event
. Puedes usar estos valores de metadatos a fin de recibir notificaciones cuando esté por suceder un evento de mantenimiento, de modo que puedas preparar tu entorno para el evento.
Para obtener más información, consulta Obtén avisos de migración en vivo.
Atributos de invitado
Los atributos de invitado son un tipo específico de metadatos personalizados en los que las aplicaciones pueden escribir mientras se ejecutan en la VM. Usa los atributos de invitado solo para casos de uso que requieran pequeñas cantidades de datos que no cambien con frecuencia. Para obtener más información sobre los atributos de invitado, consulta la sección Establece y consulta atributos de invitado.
Consideraciones de seguridad de metadatos
Cuando realizas una solicitud para obtener información del servidor de metadatos, la solicitud y la respuesta de metadatos posterior nunca abandonan el host físico que ejecuta la VM.
Sin embargo, cualquier proceso que pueda consultar la URL de metadatos tiene acceso a todos los valores del servidor de metadatos. Esto incluye cualquier valor de metadatos personalizados que escribas en el servidor. Google recomienda que tengas cuidado cuando escribas valores sensibles en el servidor de metadatos o cuando ejecutes procesos de terceros.
Claves de metadatos predefinidos y personalizados
Cada entrada de metadatos se almacena en el servidor de metadatos como pares clave-valor. Las claves de metadatos distinguen mayúsculas de minúsculas. Tus claves pueden ser claves predefinidas o personalizadas de metadatos.
Claves de metadatos predefinidas
Las claves de metadatos predefinidas son claves de metadatos que crea Compute Engine.
Cuando creas una VM, Compute Engine configura automáticamente los valores de metadatos para algunas de estas claves en esa VM, por ejemplo, el ID de instancia de VM o el ID del proyecto. En el caso de las claves predefinidas en las que Compute Engine no establece automáticamente un valor, puedes elegir entre un conjunto de valores que están disponibles según la configuración del sistema.
Por
ejemplo, para habilitar el Acceso al SO para una VM, puedes configurar el valor de la clave predefinida enable-oslogin
como TRUE
para esa VM. Para inhabilitar el Acceso al SO para esa VM, puedes actualizar
el valor de la clave a FALSE
.
Solo puedes actualizar los valores de estas claves, pero no las claves en sí.
Para obtener más información sobre las claves de metadatos predefinidas y una lista de estas claves, consulta Claves de metadatos predefinidos.
Claves de metadatos personalizados
Los metadatos personalizados te permiten crear y usar tus propios pares clave-valor de metadatos en una VM individual o en un proyecto. Puedes agregar nuevas claves de metadatos personalizados, actualizar los valores de tus claves existentes y quitar las entradas de metadatos personalizados cuando no las necesites. Establecer metadatos personalizados es útil para pasar valores arbitrarios a las VMs en un proyecto. También es útil para crear secuencias de comandos de inicio y cierre.
Para obtener información sobre cómo agregar, actualizar o quitar metadatos personalizados de tus VMs, consulta Configura metadatos personalizados.
Tipos de metadatos
Las entradas de metadatos de VM pueden proporcionar información específica de una VM individual o un proyecto. Los metadatos se dividen en metadatos de proyecto, zonales y de instancia, según el permiso en el que establezcas los metadatos.
Metadatos del proyecto
Los metadatos del proyecto se definen en el alcance del proyecto y proporcionan información que se aplica a todas las VMs de un proyecto. Cuando configuras estos metadatos, las entradas de metadatos se propagan a todas las VMs de ese proyecto.
Puedes usar claves de metadatos predefinidas y personalizadas para establecer metadatos del proyecto. Obtén más información acerca de las claves predefinidas de metadatos de proyectos y cómo configurar metadatos personalizados del proyecto.
Metadatos zonales
Los metadatos zonales se definen en un permiso zonal dentro de un proyecto y proporcionan información acerca de las VMs en esa zona específica de ese proyecto. Cuando configuras metadatos zonales, las entradas de metadatos se propagan a todas las VMs en esa zona configurada en ese proyecto. Cuando se los compara con los metadatos del proyecto, los metadatos zonales te ayudan con el aislamiento de fallas y proporcionan mayor confiabilidad.
Compute Engine no proporciona ninguna clave predefinida para los metadatos zonales. Debes crear tus propias claves de metadatos personalizados para establecer metadatos zonales. Obtén más información acerca de cómo establecer metadatos zonales personalizados.
Metadatos de la instancia
Los metadatos de la instancia proporcionan información sobre una instancia de VM específica. Debes configurar los metadatos de la instancia por separado para cada instancia de VM individual.
Para establecer metadatos de instancias, puedes usar claves de metadatos predefinidas y personalizadas. Obtén más información sobre las claves de metadatos de instancia predefinidas y cómo configurar metadatos de instancia personalizados.
Cómo se organizan los metadatos
Compute Engine almacena y mantiene las claves y los valores de metadatos para las VMs y los proyectos en las listas de directorios. Según el tipo de metadatos, Compute Engine almacena entradas de metadatos en uno de los siguientes directorios:
Tipo de metadatos | Directorio |
---|---|
|
http://metadata.google.internal/computeMetadata/v1/project/ |
Metadatos de la instancia | http://metadata.google.internal/computeMetadata/v1/instance/ |
Cada directorio almacena entradas de metadatos en forma de pares clave-valor. Algunas entradas de metadatos son directorios que contienen otras claves de metadatos. Las entradas de metadatos que funcionan como directorios se marcan con una barra diagonal (/
) en el nombre de la clave de metadatos. Por ejemplo, /project/attributes/
es un directorio en el directorio project/
que contiene otras claves de metadatos. Para crear tu propia lista de directorios de metadatos, debes usar una barra diagonal (/
) en el nombre de la clave de metadatos cuando creas tu entrada de metadatos personalizados.
Las entradas de metadatos zonales y de proyectos se almacenan en el mismo
directorio project/
. Si configuras valores diferentes para las mismas claves
de metadatos personalizados para VMs a nivel de proyecto y a nivel zonal, los
valores de metadatos zonales para esas claves tienen prioridad sobre los
valores de metadatos del proyecto en las zonas respectivas.
- Si agregas un valor de metadatos zonales para una clave de metadatos que ya
tiene un valor de metadatos del proyecto, Compute Engine anula el valor de metadatos
del proyecto para las VMs de esta zona especificada y actualiza el directorio
/project
con el valor zonal. - Si agregas un valor de metadatos nuevo a nivel de proyecto para una clave de metadatos que ya
tiene un valor de metadatos zonales, no cambiará nada. Compute Engine conserva el
valor de metadatos zonales en el directorio
/project
de la zona específica. - Si no especificas un valor de metadatos zonales para una clave de metadatos personalizada en una zona específica, pero la clave tiene un valor de metadatos del proyecto, las VMs seguirán teniendo los valores de metadatos del proyecto en esas zonas.
Por ejemplo, supongamos que defines un par de metadatos de key-1=value-1
para todo el proyecto. Supongamos que también defines un par de metadatos
zonales de para key-1=zonal-value-1
solo para la zona
us-central1-a
. Todas las VMs en la zona us-central1-a
de tu proyecto heredan key-1=zonal-value1
como el par de metadatos. El par de metadatos
permanece key-1=value-1
para todas las VMs en otras zonas en las que no
configuraste ningún metadato zonal para key-1
.
Próximos pasos
- Obtén información sobre las claves de metadatos predefinidas que ofrece Google Cloud.
- Obtén más información sobre cómo configurar entradas de metadatos personalizados.
- Aprende a configurar y consultar atributos de invitado.
- Después de configurar los valores para tus claves de metadatos, aprende a ver y consultar la información de metadatos de VM de una VM o un proyecto.
- Obtén información para obtener avisos de migración en vivo desde el servidor de metadatos.