Ver y mantener metadatos de máquinas virtuales

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:

  1. Inicia sesión y genera el archivo kubeconfig del servidor de la API Management si no tienes uno.

  2. 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.

  1. 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 es https://console.example-org.com, el ORG_SUFFIX es example-org.com.

    El resultado debería ser similar al siguiente:

    STS-Bearer-QPN1nX6GVdoRKCpRx7FD-61gh6RAvWfM6sqjU2knw9n6RFn1jR2n4i1z1irH2HrMLf0tC3hqNaetYzoOBQ6hI2eS7-58_ZZGCMc_oARuX_T9Wmtwe4xlaIS97aDdu9KETEs0akoVYEsmFsWCu2Cu5pdiwjzSuWnRCMZwq9g8BmnPSck1Auf7rOfM7o2FoGE_lbLFZK4C8TCPdloDZAXYcLeNAQ
    
  2. 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 es https://console.example-org.com, el ORG_SUFFIX es example-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 token STS 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.

  1. 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 es https://console.example-org.com, el ORG_SUFFIX es example-org.com.

    El resultado debería ser similar al siguiente:

    STS-Bearer-QPN1nX6GVdoRKCpRx7FD-61gh6RAvWfM6sqjU2knw9n6RFn1jR2n4i1z1irH2HrMLf0tC3hqNaetYzoOBQ6hI2eS7-58_ZZGCMc_oARuX_T9Wmtwe4xlaIS97aDdu9KETEs0akoVYEsmFsWCu2Cu5pdiwjzSuWnRCMZwq9g8BmnPSck1Auf7rOfM7o2FoGE_lbLFZK4C8TCPdloDZAXYcLeNAQ
    
  2. 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 es https://console.example-org.com, el ORG_SUFFIX es example-org.com.
    • VM_NAME: el nombre de la instancia de VM.
    • PROJECT: nombre del proyecto en el que reside la VM.
    • STS_TOKEN: el token STS 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

  1. 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
    
  2. 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 es https://console.example-org.com, ORG_SUFFIX es example-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 token STS 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"