Cada máquina virtual almacena sus metadatos en un servidor de metadatos. Puedes añadir, quitar y ver metadatos en tus máquinas virtuales aisladas de Google Distributed Cloud (GDC) como pares clave-valor (KVPs).
Puedes usar los pares clave-valor de metadatos para almacenar información que te ayude a identificar tu VM, como el nombre de un servidor. Puedes acceder a los metadatos desde fuera y desde dentro de la VM, así como usarlos para transferir información entre diferentes sistemas.
Antes de empezar
Para usar los comandos de la gdcloud
interfaz de línea de comandos (CLI), asegúrate de haber descargado, instalado y configurado la gdcloud
CLI.
Todos los comandos de Distributed Cloud usan la CLI gdcloud
o kubectl
y requieren un entorno de sistema operativo.
Obtener la ruta del archivo kubeconfig
Para ejecutar comandos en el servidor de la API Management, asegúrate de tener los siguientes recursos:
Inicia sesión y genera el archivo kubeconfig del servidor de la API Management si no tienes uno.
Usa la ruta al archivo kubeconfig del servidor de la API Management para sustituir
MANAGEMENT_API_SERVER
en estas instrucciones.
Solicitar permisos y acceso
Para realizar las tareas que se indican en esta página, debes tener el rol de administrador de máquinas virtuales del proyecto. Sigue los pasos para verificar o pide al administrador de gestión de identidades y accesos de tu proyecto que te asigne el rol Administrador de máquinas virtuales de proyectos (project-vm-admin
) en el espacio de nombres del proyecto en el que reside la VM.
Para realizar operaciones con VMs mediante la consola de GDC o la CLI de gdcloud, pide al administrador de gestión de identidades y accesos de tu proyecto que te asigne el rol Administrador de VirtualMachine de proyecto y el rol Lector de proyectos (project-viewer
).
Añadir o quitar metadatos
En esta sección se describe cómo añadir y eliminar metadatos de instancias de VM.
Puedes usar metadatos para almacenar pares clave-valor arbitrarios que quieras añadir a tus VMs. Por ejemplo, puede añadir y gestionar sus propios metadatos personalizados para identificar diferentes entornos, como test
y production
.
Añadir metadatos
gdcloud
Añade metadatos a una instancia de VM específica. Debes incluir una de las marcas
--metadata
o--metadata-from-file
en tu comando. También puedes añadir ambas marcas en el mismo comando si es necesario para tu caso práctico:gdcloud compute instances add-metadata VM_NAME [--project=PROJECT] [--metadata=KEY=KEY_VALUE,[,KEY=KEY_VALUE,...]] [--metadata-from-file=KEY=LOCAL_FILE_PATH,]
Haz los cambios siguientes:
VM_NAME
: el nombre de la instancia de VM.PROJECT
: nombre del proyecto en el que reside la VM. Este valor es opcional.KEY
: la clave del par de metadatos.KEY_VALUE
: el valor del par de metadatos.LOCAL_FILE_PATH
: el valor del par de metadatos de un archivo local.
API
Para añadir metadatos con la API, debes usar un token STS
.
Usa la CLI de gdcloud para generar un token
STS
:gdcloud auth print-identity-token --audiences="https://metadata.ORG_SUFFIX"
Sustituye
ORG_SUFFIX
por el sufijo de la organización. Por ejemplo, si la URL de la consola de organización eshttps://console.example-org.com
, elORG_SUFFIX
esexample-org.com
.El resultado debería ser similar al siguiente:
STS-Bearer-QPN1nX6GVdoRKCpRx7FD-61gh6RAvWfM6sqjU2knw9n6RFn1jR2n4i1z1irH2HrMLf0tC3hqNaetYzoOBQ6hI2eS7-58_ZZGCMc_oARuX_T9Wmtwe4xlaIS97aDdu9KETEs0akoVYEsmFsWCu2Cu5pdiwjzSuWnRCMZwq9g8BmnPSck1Auf7rOfM7o2FoGE_lbLFZK4C8TCPdloDZAXYcLeNAQ
Añade metadatos a una instancia de VM específica:
curl -X POST "https://metadata.ORG_SUFFIX/virtual-machines/metadata/v1/projects/PROJECT/vm/VM_NAME" \ -H "Authorization: Bearer STS_TOKEN \ -H "Content-Type: application/json" \ -d "{"metadata": {"items": [{"key": "test-key", "value": "test-value"}]}}"
Haz los cambios siguientes:
ORG_SUFFIX
: el sufijo de la organización. Por ejemplo, si la URL de la consola de la organización eshttps://console.example-org.com
, elORG_SUFFIX
esexample-org.com
.VM_NAME
: el nombre de la instancia de VM.PROJECT
: nombre del proyecto en el que reside la VM. Este valor es opcional.STS_TOKEN
: el tokenSTS
generado a partir de la CLI de gdcloud.
Eliminar metadatos
gdcloud
Quita los metadatos de una instancia de VM específica. Si quieres eliminar todas las entradas de metadatos, usa la marca
--all
. Debes usar una de las marcas--all
o--keys
en tu comando:gdcloud compute instances remove-metadata VM_NAME [--project=PROJECT] [--keys=KEY,[KEY,...]] [--all]
Haz los cambios siguientes:
VM_NAME
: el nombre de la instancia de VM.PROJECT
: nombre del proyecto en el que reside la VM. Este valor es opcional.KEY
: la cadena de clave del par de metadatos.
API
Para eliminar metadatos con la API, debe usar un token STS
.
Usa la CLI de gdcloud para generar un token
STS
:gdcloud auth print-identity-token --audiences="https://metadata.ORG_SUFFIX"
Sustituye
ORG_SUFFIX
por el sufijo de la organización. Por ejemplo, si la URL de la consola de organización eshttps://console.example-org.com
, elORG_SUFFIX
esexample-org.com
.El resultado debería ser similar al siguiente:
STS-Bearer-QPN1nX6GVdoRKCpRx7FD-61gh6RAvWfM6sqjU2knw9n6RFn1jR2n4i1z1irH2HrMLf0tC3hqNaetYzoOBQ6hI2eS7-58_ZZGCMc_oARuX_T9Wmtwe4xlaIS97aDdu9KETEs0akoVYEsmFsWCu2Cu5pdiwjzSuWnRCMZwq9g8BmnPSck1Auf7rOfM7o2FoGE_lbLFZK4C8TCPdloDZAXYcLeNAQ
Para quitar los metadatos de una instancia de VM específica, sigue estos pasos:
curl -X POST "https://metadata.ORG_SUFFIX/virtual-machines/metadata/v1/projects/PROJECT/vm/VM_NAME" \ -H "Authorization: Bearer STS_TOKEN" \ -H "Content-Type: application/json" \ -d "{"metadata": {"items": [{"key": "test-key", "value": "test-value"}]}}"
Haz los cambios siguientes:
ORG_SUFFIX
: el sufijo de la organización. Por ejemplo, si la URL de la consola de la organización eshttps://console.example-org.com
, elORG_SUFFIX
esexample-org.com
.VM_NAME
: el nombre de la instancia de VM.PROJECT
: nombre del proyecto en el que reside la VM.STS_TOKEN
: el tokenSTS
generado a partir de la CLI de gdcloud.
Consultar metadatos
gdcloud
Lista todos los metadatos de la instancia de VM para ver los detalles de los metadatos:
gdcloud compute instances describe VM_NAME [--project=PROJECT]
Haz los cambios siguientes:
VM_NAME
: el nombre de la instancia de VM.PROJECT
: nombre del proyecto en el que reside la VM. Este valor es opcional.
El resultado debería ser similar al siguiente:
... metadata: items: - key: Key-1 value: val12 - key: key2 value: lksdjfhk-user1
API
Usa la CLI de gdcloud para generar un token
STS
:gdcloud auth print-identity-token --audiences="https://metadata.ORG_SUFFIX"
Sustituye
ORG_SUFFIX
por el sufijo de la organización.El resultado debería ser similar al siguiente:
STS-Bearer-QPN1nX6GVdoRKCpRx7FD-61gh6RAvWfM6sqjU2knw9n6RFn1jR2n4i1z1irH2HrMLf0tC3hqNaetYzoOBQ6hI2eS7-58_ZZGCMc_oARuX_T9Wmtwe4xlaIS97aDdu9KETEs0akoVYEsmFsWCu2Cu5pdiwjzSuWnRCMZwq9g8BmnPSck1Auf7rOfM7o2FoGE_lbLFZK4C8TCPdloDZAXYcLeNAQ
Lista todos los metadatos de la instancia de VM para ver los detalles de los metadatos:
curl "https://metadata.ORG_SUFFIX/virtual-machines/metadata/v1/projects/PROJECT/vm/VM_NAME" \ -H "Authorization: Bearer STS_TOKEN" \ -H "Content-Type: application/json"
Haz los cambios siguientes:
ORG_SUFFIX
: el sufijo de la organización. Por ejemplo, si la URL de la consola de la organización eshttps://console.example-org.com
,ORG_SUFFIX
esexample-org.com
.VM_NAME
: el nombre de la instancia de VM.PROJECT
: nombre del proyecto en el que reside la VM. Este valor es opcional.STS_TOKEN
: el tokenSTS
generado a partir de la CLI de gdcloud.
El resultado debería ser similar al siguiente:
... metadata: items: - key: Key-1 value: val12 - key: key2 value: lksdjfhk-user1
Consultar metadatos desde una VM
Puedes consultar los metadatos de una VM desde la propia VM sin tener que conectarte al servidor de metadatos. Para ello, usa el comando curl
y añade la clave de metadatos aplicable a la URL de metadatos.
Consultar un solo par clave-valor
Consulta un solo par clave-valor desde una VM:
curl "http://metadata.google.internal/computeMetadata/v1/instance/attributes/KEY" -H "Metadata-Flavor: Google"
Sustituye KEY
por la clave del par de metadatos que quieras consultar.
Consultar todos los pares clave-valor con valores
Consulta todos los pares clave-valor desde una VM con los siguientes valores:
curl "http://metadata.google.internal/computeMetadata/v1/instance/attributes/?recursive=true" -H "Metadata-Flavor: Google"
Consultar todas las claves de metadatos sin valores
Consulta todas las claves de metadatos de una VM sin pares clave-valor:
curl "http://metadata.google.internal/computeMetadata/v1/instance/attributes/?recursive=false" -H "Metadata-Flavor: Google"