Cómo ver y mantener los metadatos de la VM

Cada máquina virtual (VM) almacena sus metadatos en un servidor de metadatos. Puedes agregar, quitar y ver metadatos en las VMs de tu dispositivo aislado de Google Distributed Cloud (GDC) como pares clave-valor (KVP).

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 dentro de la VM, y usarlos para pasar información entre diferentes sistemas.

Antes de comenzar

Para usar los comandos de la interfaz de línea de comandos (CLI) de gdcloud, asegúrate de haber descargado, instalado y configurado la CLI de gdcloud. Todos los comandos para el dispositivo aislado de GDC usan la CLI de gdcloud o kubectl, y requieren un entorno de sistema operativo (SO).

Obtén la ruta de acceso del archivo kubeconfig

Para ejecutar comandos en el servidor de la API de Management, asegúrate de tener los siguientes recursos:

  1. Ubica el nombre del servidor de la API de Management o pregúntale a tu administrador de la plataforma (PA) cuál es el nombre del servidor.

  2. Accede y genera el archivo kubeconfig para el servidor de la API de Management si no tienes uno.

  3. Usa la ruta de acceso para reemplazar MANAGEMENT_API_SERVER{"</var>"}} en estas instrucciones.

Solicita permisos y acceso

Para realizar las tareas que se indican en esta página, debes tener el rol de administrador de la máquina virtual del proyecto. Sigue los pasos para verificar o para que el administrador de IAM del proyecto te asigne el rol de administrador de máquinas virtuales del proyecto (project-vm-admin) en el espacio de nombres del proyecto en el que reside la VM.

Para las operaciones de VM con la consola de GDC o la CLI de gdcloud, solicita a tu administrador de IAM del proyecto que te asigne el rol de administrador de máquinas virtuales del proyecto y el rol de visualizador del proyecto (project-viewer).

Cómo agregar o quitar metadatos

En esta sección, se describe cómo agregar y quitar metadatos de instancias de VM existentes. Puedes usar metadatos para almacenar pares clave-valor arbitrarios que desees agregar a tus VMs. Por ejemplo, es posible que desees agregar y administrar tus propios metadatos personalizados para identificar diferentes entornos, como test y production.

Agregar metadatos

gdcloud

  • Agrega 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 agregar ambas marcas en el mismo comando si es necesario para tu caso de uso:

    gdcloud compute instances add-metadata VM_NAME
        [--project=PROJECT]
        [--metadata=KEY=KEY_VALUE,[,KEY=KEY_VALUE,...]]
        [--metadata-from-file=KEY=LOCAL_FILE_PATH,]
    

    Reemplaza lo siguiente:

    • VM_NAME: El nombre de la instancia de VM
    • PROJECT: Es el nombre del proyecto en el que reside la VM. Este valor es opcional.
    • KEY: Es la clave del par de metadatos.
    • KEY_VALUE: Es el valor del par de metadatos.
    • LOCAL_FILE_PATH: Es el valor del par de metadatos de un archivo local.

API

Para agregar metadatos con la API, debes usar un token de STS.

  1. Usa la CLI de gcloud para generar un token de STS:

    gdcloud auth print-identity-token --audiences="https://metadata.ORG_SUFFIX"
    

    Reemplaza ORG_SUFFIX por 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.

    El resultado es similar a este:

    STS-Bearer-QPN1nX6GVdoRKCpRx7FD-61gh6RAvWfM6sqjU2knw9n6RFn1jR2n4i1z1irH2HrMLf0tC3hqNaetYzoOBQ6hI2eS7-58_ZZGCMc_oARuX_T9Wmtwe4xlaIS97aDdu9KETEs0akoVYEsmFsWCu2Cu5pdiwjzSuWnRCMZwq9g8BmnPSck1Auf7rOfM7o2FoGE_lbLFZK4C8TCPdloDZAXYcLeNAQ
    
  2. Agrega 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"}]}}"
    

    Reemplaza lo siguiente:

    • ORG_SUFFIX: Es 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: Es el nombre del proyecto en el que reside la VM. Este valor es opcional.
    • STS_TOKEN: Es el token de STS generado a partir de la CLI de gdcloud.

Quitar metadatos

gdcloud

  • Quita metadatos de una instancia de VM específica. Si deseas quitar 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]
    

    Reemplaza lo siguiente:

    • VM_NAME: El nombre de la instancia de VM
    • PROJECT: Es el nombre del proyecto en el que reside la VM. Este valor es opcional.
    • KEY: Es la cadena de clave del par de metadatos.

API

Para quitar metadatos con la API, debes usar un token de STS.

  1. Usa la CLI de gcloud para generar un token de STS:

    gdcloud auth print-identity-token --audiences="https://metadata.ORG_SUFFIX"
    

    Reemplaza ORG_SUFFIX por 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.

    El resultado es similar a este:

    STS-Bearer-QPN1nX6GVdoRKCpRx7FD-61gh6RAvWfM6sqjU2knw9n6RFn1jR2n4i1z1irH2HrMLf0tC3hqNaetYzoOBQ6hI2eS7-58_ZZGCMc_oARuX_T9Wmtwe4xlaIS97aDdu9KETEs0akoVYEsmFsWCu2Cu5pdiwjzSuWnRCMZwq9g8BmnPSck1Auf7rOfM7o2FoGE_lbLFZK4C8TCPdloDZAXYcLeNAQ
    
  2. Quita metadatos de 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"}]}}"
    

    Reemplaza lo siguiente:

    • ORG_SUFFIX: Es 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: Es el nombre del proyecto en el que reside la VM.
    • STS_TOKEN: Es el token de STS generado a partir de la CLI de gdcloud.

Consulta de metadatos

gdcloud

  • Enumera todos los metadatos de instancias de VM para ver los detalles de los metadatos:

    gdcloud compute instances describe VM_NAME
        [--project=PROJECT]
    

    Reemplaza lo siguiente:

    • VM_NAME: El nombre de la instancia de VM
    • PROJECT: Es el nombre del proyecto en el que reside la VM. Este valor es opcional.

    El resultado es similar a este:

    ...
    metadata:
      items:
      - key: Key-1
        value: val12
      - key: key2
        value:
          lksdjfhk-user1
    

API

  1. Usa la CLI de gcloud para generar un token de STS:

    gdcloud auth print-identity-token --audiences="https://metadata.ORG_SUFFIX"
    

    Reemplaza ORG_SUFFIX por el sufijo de la organización.

    El resultado es similar a este:

    STS-Bearer-QPN1nX6GVdoRKCpRx7FD-61gh6RAvWfM6sqjU2knw9n6RFn1jR2n4i1z1irH2HrMLf0tC3hqNaetYzoOBQ6hI2eS7-58_ZZGCMc_oARuX_T9Wmtwe4xlaIS97aDdu9KETEs0akoVYEsmFsWCu2Cu5pdiwjzSuWnRCMZwq9g8BmnPSck1Auf7rOfM7o2FoGE_lbLFZK4C8TCPdloDZAXYcLeNAQ
    
  2. Enumera todos los metadatos de instancias 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"
    

    Reemplaza lo siguiente:

    • ORG_SUFFIX: Es 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: Es el nombre del proyecto en el que reside la VM. Este valor es opcional.
    • STS_TOKEN: Es el token de STS generado a partir de la CLI de gdcloud.

    El resultado es similar a este:

    ...
    metadata:
      items:
      - key: Key-1
        value: val12
      - key: key2
        value:
          lksdjfhk-user1
    

Consulta metadatos desde una VM

Puedes consultar los metadatos de la VM desde la VM, sin tener que conectarte al servidor de metadatos. Para ello, usa el comando curl y agrega la clave de metadatos aplicable a la URL de metadatos.

Consulta un solo KVP

Consulta un solo KVP desde una VM:

curl "http://metadata.google.internal/computeMetadata/v1/instance/attributes/KEY" -H "Metadata-Flavor: Google"

Reemplaza KEY por la clave del par de metadatos que deseas consultar.

Consulta todos los pares clave-valor con valores

Consulta todos los pares KVP desde una VM con pares clave-valor:

curl "http://metadata.google.internal/computeMetadata/v1/instance/attributes/?recursive=true" -H "Metadata-Flavor: Google"

Consulta todas las claves de metadatos sin valores

Consulta todas las claves de metadatos desde una VM sin pares clave-valor:

curl "http://metadata.google.internal/computeMetadata/v1/instance/attributes/?recursive=false" -H "Metadata-Flavor: Google"