Ogni macchina virtuale (VM) archivia i propri metadati su un server metadati. Puoi aggiungere, rimuovere e visualizzare i metadati sulle tue VM air-gap di Google Distributed Cloud (GDC) come coppie chiave-valore (KVP).
Puoi utilizzare le coppie chiave-valore dei metadati per archiviare informazioni che possono aiutarti a identificare la VM, ad esempio il nome di un server. Puoi accedere ai metadati dall'esterno e dall'interno della VM e utilizzarli per trasferire informazioni tra sistemi diversi.
Prima di iniziare
Per utilizzare i comandi dell'interfaccia a riga di comando (CLI) gdcloud
, assicurati di aver scaricato, installato e configurato la CLI gdcloud
.
Tutti i comandi per Distributed Cloud utilizzano la CLI gdcloud
o
kubectl
e richiedono un ambiente del sistema operativo.
Recupera il percorso del file kubeconfig
Per eseguire comandi sul server API Management, assicurati di disporre delle seguenti risorse:
Accedi e genera il file kubeconfig per il server API Management se non ne hai uno.
Utilizza il percorso del file kubeconfig del server API Management per sostituire
MANAGEMENT_API_SERVER
in queste istruzioni.
Richiedere autorizzazioni e accesso
Per eseguire le attività elencate in questa pagina, devi disporre del ruolo Amministratore
macchina virtuale progetto. Segui i passaggi per verificare o chiedere all'amministratore IAM progetto di assegnarti il ruolo Amministratore VirtualMachine progetto (project-vm-admin
) nello spazio dei nomi del progetto in cui si trova la VM.
Per le operazioni sulle VM che utilizzano la console GDC o gcloud CLI,
chiedi all'amministratore IAM del progetto di assegnarti sia il ruolo
Project VirtualMachine Admin sia il ruolo Project Viewer (project-viewer
).
Aggiungere o rimuovere metadati
Questa sezione descrive come aggiungere e rimuovere i metadati dalle istanze VM esistenti.
Puoi utilizzare i metadati per archiviare coppie chiave-valore arbitrarie che vuoi aggiungere
alle tue VM. Ad esempio, potresti voler aggiungere e gestire i tuoi metadati personalizzati
per identificare diversi ambienti, come test
e production
.
Aggiungi metadati
gdcloud
Aggiungi metadati a un'istanza VM specifica. Devi includere uno dei flag
--metadata
o--metadata-from-file
nel comando. Se necessario per il tuo caso d'uso, puoi aggiungere entrambi i flag nello stesso comando:gdcloud compute instances add-metadata VM_NAME [--project=PROJECT] [--metadata=KEY=KEY_VALUE,[,KEY=KEY_VALUE,...]] [--metadata-from-file=KEY=LOCAL_FILE_PATH,]
Sostituisci quanto segue:
VM_NAME
: il nome dell'istanza VM.PROJECT
: il nome del progetto in cui si trova la VM. Questo valore è facoltativo.KEY
: la chiave della coppia di metadati.KEY_VALUE
: il valore della coppia di metadati.LOCAL_FILE_PATH
: il valore della coppia di metadati di un file locale.
API
Per aggiungere metadati con l'API, devi utilizzare un token STS
.
Utilizza gcloud CLI per generare un token
STS
:gdcloud auth print-identity-token --audiences="https://metadata.ORG_SUFFIX"
Sostituisci
ORG_SUFFIX
con il suffisso dell'organizzazione. Ad esempio, se l'URL della console dell'organizzazione èhttps://console.example-org.com
,ORG_SUFFIX
èexample-org.com
L'output è simile al seguente:
STS-Bearer-QPN1nX6GVdoRKCpRx7FD-61gh6RAvWfM6sqjU2knw9n6RFn1jR2n4i1z1irH2HrMLf0tC3hqNaetYzoOBQ6hI2eS7-58_ZZGCMc_oARuX_T9Wmtwe4xlaIS97aDdu9KETEs0akoVYEsmFsWCu2Cu5pdiwjzSuWnRCMZwq9g8BmnPSck1Auf7rOfM7o2FoGE_lbLFZK4C8TCPdloDZAXYcLeNAQ
Aggiungi metadati a un'istanza VM specifica:
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"}]}}"
Sostituisci quanto segue:
ORG_SUFFIX
: il suffisso dell'organizzazione. Ad esempio, se l'URL della console dell'organizzazione èhttps://console.example-org.com
,ORG_SUFFIX
èexample-org.com
.VM_NAME
: il nome dell'istanza VM.PROJECT
: il nome del progetto in cui si trova la VM. Questo valore è facoltativo.STS_TOKEN
: il tokenSTS
generato da gcloud CLI.
Rimuovi metadati
gdcloud
Rimuovi i metadati da una VM specifica. Se vuoi rimuovere tutte le voci di metadati, utilizza il flag
--all
. Devi utilizzare uno dei flag--all
o--keys
nel comando:gdcloud compute instances remove-metadata VM_NAME [--project=PROJECT] [--keys=KEY,[KEY,...]] [--all]
Sostituisci quanto segue:
VM_NAME
: il nome dell'istanza VM.PROJECT
: il nome del progetto in cui si trova la VM. Questo valore è facoltativo.KEY
: la stringa chiave per la coppia di metadati.
API
Per rimuovere i metadati con l'API, devi utilizzare un token STS
.
Utilizza gcloud CLI per generare un token
STS
:gdcloud auth print-identity-token --audiences="https://metadata.ORG_SUFFIX"
Sostituisci
ORG_SUFFIX
con il suffisso dell'organizzazione. Ad esempio, se l'URL della console dell'organizzazione èhttps://console.example-org.com
,ORG_SUFFIX
èexample-org.com
.L'output è simile al seguente:
STS-Bearer-QPN1nX6GVdoRKCpRx7FD-61gh6RAvWfM6sqjU2knw9n6RFn1jR2n4i1z1irH2HrMLf0tC3hqNaetYzoOBQ6hI2eS7-58_ZZGCMc_oARuX_T9Wmtwe4xlaIS97aDdu9KETEs0akoVYEsmFsWCu2Cu5pdiwjzSuWnRCMZwq9g8BmnPSck1Auf7rOfM7o2FoGE_lbLFZK4C8TCPdloDZAXYcLeNAQ
Rimuovi i metadati da un'istanza VM specifica:
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"}]}}"
Sostituisci quanto segue:
ORG_SUFFIX
: il suffisso dell'organizzazione. Ad esempio, se l'URL della console dell'organizzazione èhttps://console.example-org.com
,ORG_SUFFIX
èexample-org.com
.VM_NAME
: il nome dell'istanza VM.PROJECT
: il nome del progetto in cui si trova la VM.STS_TOKEN
: il tokenSTS
generato da gcloud CLI.
Query sui metadati
gdcloud
Elenca tutti i metadati dell'istanza VM per visualizzare i dettagli dei metadati:
gdcloud compute instances describe VM_NAME [--project=PROJECT]
Sostituisci quanto segue:
VM_NAME
: il nome dell'istanza VM.PROJECT
: il nome del progetto in cui si trova la VM. Questo valore è facoltativo.
L'output è simile al seguente:
... metadata: items: - key: Key-1 value: val12 - key: key2 value: lksdjfhk-user1
API
Utilizza gcloud CLI per generare un token
STS
:gdcloud auth print-identity-token --audiences="https://metadata.ORG_SUFFIX"
Sostituisci
ORG_SUFFIX
con il suffisso dell'organizzazione.L'output è simile al seguente:
STS-Bearer-QPN1nX6GVdoRKCpRx7FD-61gh6RAvWfM6sqjU2knw9n6RFn1jR2n4i1z1irH2HrMLf0tC3hqNaetYzoOBQ6hI2eS7-58_ZZGCMc_oARuX_T9Wmtwe4xlaIS97aDdu9KETEs0akoVYEsmFsWCu2Cu5pdiwjzSuWnRCMZwq9g8BmnPSck1Auf7rOfM7o2FoGE_lbLFZK4C8TCPdloDZAXYcLeNAQ
Elenca tutti i metadati dell'istanza VM per visualizzare i dettagli dei metadati:
curl "https://metadata.ORG_SUFFIX/virtual-machines/metadata/v1/projects/PROJECT/vm/VM_NAME" \ -H "Authorization: Bearer STS_TOKEN" \ -H "Content-Type: application/json"
Sostituisci quanto segue:
ORG_SUFFIX
: il suffisso dell'organizzazione. Ad esempio, se l'URL della console dell'organizzazione èhttps://console.example-org.com
,ORG_SUFFIX
èexample-org.com
VM_NAME
: il nome dell'istanza VM.PROJECT
: il nome del progetto in cui si trova la VM. Questo valore è facoltativo.STS_TOKEN
: il tokenSTS
generato da gcloud CLI.
L'output è simile al seguente:
... metadata: items: - key: Key-1 value: val12 - key: key2 value: lksdjfhk-user1
Esegui query sui metadati dall'interno di una VM
Puoi eseguire query sui metadati della VM dall'interno della VM, senza dover
connetterti al server di metadati. Per farlo, utilizza il comando curl
e aggiungi la chiave dei metadati applicabile all'URL dei metadati.
Eseguire query su una singola coppia chiave-valore
Esegui una query su una singola coppia chiave-valore dall'interno di una VM:
curl "http://metadata.google.internal/computeMetadata/v1/instance/attributes/KEY" -H "Metadata-Flavor: Google"
Sostituisci KEY
con la chiave della coppia di metadati che vuoi
interrogare.
Esegui query su tutte le coppie chiave-valore con valori
Esegui query su tutte le coppie chiave-valore dall'interno di una VM con coppie chiave-valore:
curl "http://metadata.google.internal/computeMetadata/v1/instance/attributes/?recursive=true" -H "Metadata-Flavor: Google"
Esegui una query su tutte le chiavi di metadati senza valori
Esegui una query su tutte le chiavi di metadati dall'interno di una VM senza coppie chiave-valore:
curl "http://metadata.google.internal/computeMetadata/v1/instance/attributes/?recursive=false" -H "Metadata-Flavor: Google"