Die Metadaten jeder virtuellen Maschine (VM) werden auf einem Metadatenserver gespeichert. Sie können Metadaten in Ihren Google Distributed Cloud-VMs (GDC) ohne Internetverbindung als Schlüssel/Wert-Paare (KVPs) hinzufügen, entfernen und ansehen.
Sie können die Schlüssel/Wert-Paare für Metadaten verwenden, um Informationen zu speichern, mit denen Sie Ihre VM identifizieren können, z. B. einen Servernamen. Sie können von außerhalb und innerhalb der VM auf Metadaten zugreifen und sie verwenden, um Informationen zwischen verschiedenen Systemen zu übergeben.
Hinweise
Wenn Sie Befehle der gdcloud-Befehlszeile (Command-Line Interface, CLI) verwenden möchten, müssen Sie die gdcloud-CLI heruntergeladen, installiert und konfiguriert haben.
Für alle Befehle für Distributed Cloud wird die CLI gdcloud oder kubectl verwendet und es ist eine Betriebssystemumgebung erforderlich.
Pfad der kubeconfig-Datei abrufen
Damit Sie Befehle für den Management API-Server ausführen können, benötigen Sie die folgenden Ressourcen:
Melden Sie sich an und generieren Sie die kubeconfig-Datei für den Management API-Server, falls Sie noch keine haben.
Verwenden Sie den Pfad zur kubeconfig-Datei des Management API-Servers, um
MANAGEMENT_API_SERVERin dieser Anleitung zu ersetzen.
Berechtigungen und Zugriff anfordern
Project VirtualMachine Admin (
project-vm-admin): Verwaltet VMs im Projekt-Namespace.Projektbetrachter (
project-viewer): Hat schreibgeschützten Zugriff auf alle Ressourcen in einem Projekt-Namespace.
Folgen Sie der Anleitung, um Ihren Zugriff zu bestätigen.
Metadaten hinzufügen oder entfernen
In diesem Abschnitt wird beschrieben, wie Sie vorhandenen VM-Instanzen Metadaten hinzufügen und daraus entfernen.
Sie können Metadaten verwenden, um beliebige Schlüssel/Wert-Paare zu speichern, die Sie Ihren VMs hinzufügen möchten. Sie können beispielsweise eigene benutzerdefinierte Metadaten hinzufügen und verwalten, um verschiedene Umgebungen wie test und production zu identifizieren.
Metadaten hinzufügen
gdcloud
Metadaten zu einer bestimmten VM-Instanz hinzufügen. Sie müssen entweder das Flag
--metadataoder das Flag--metadata-from-filein den Befehl einfügen. Bei Bedarf können Sie auch beide Flags im selben Befehl hinzufügen:gdcloud compute instances add-metadata VM_NAME [--project=PROJECT_NAME] [--metadata=KEY=KEY_VALUE,[,KEY=KEY_VALUE,...]] [--metadata-from-file=KEY=LOCAL_FILE_PATH,]Ersetzen Sie Folgendes:
VM_NAMEist der Name der VM-Instanz.PROJECT_NAME: Der Name des Projekts, in dem sich die VM befindet. Dieser Wert ist optional.KEY: der Schlüssel für das Metadatenpaar.KEY_VALUE: der Wert für das Metadatenpaar.LOCAL_FILE_PATH: Der Wert des Metadatenpaars aus einer lokalen Datei.
API
Wenn Sie Metadaten mit der API hinzufügen möchten, müssen Sie ein STS-Token verwenden.
Verwenden Sie die gcloud CLI, um ein
STS-Token zu generieren:gdcloud auth print-identity-token --audiences="https://metadata.ORG_SUFFIX"Ersetzen Sie
ORG_SUFFIXdurch das Organisationssuffix. Wenn die URL der Organisationskonsole beispielsweisehttps://console.example-org.comlautet, istORG_SUFFIXgleichexample-org.com.Die Ausgabe sieht etwa so aus:
STS-Bearer-QPN1nX6GVdoRKCpRx7FD-61gh6RAvWfM6sqjU2knw9n6RFn1jR2n4i1z1irH2HrMLf0tC3hqNaetYzoOBQ6hI2eS7-58_ZZGCMc_oARuX_T9Wmtwe4xlaIS97aDdu9KETEs0akoVYEsmFsWCu2Cu5pdiwjzSuWnRCMZwq9g8BmnPSck1Auf7rOfM7o2FoGE_lbLFZK4C8TCPdloDZAXYcLeNAQMetadaten einer bestimmten VM-Instanz hinzufügen:
curl -X POST "https://metadata.ORG_SUFFIX/virtual-machines/metadata/v1/projects/PROJECT_NAME/vm/VM_NAME" \ -H "Authorization: Bearer STS_TOKEN \ -H "Content-Type: application/json" \ -d "{"metadata": {"items": [{"key": "test-key", "value": "test-value"}]}}"Ersetzen Sie Folgendes:
ORG_SUFFIX: das Organisationssuffix. Wenn die URL der Organisationskonsole beispielsweisehttps://console.example-org.comlautet, istORG_SUFFIXexample-org.com.VM_NAMEist der Name der VM-Instanz.PROJECT_NAME: Der Name des Projekts, in dem sich die VM befindet. Dieser Wert ist optional.STS_TOKEN: dasSTS-Token, das über die gcloud CLI generiert wurde.
Das folgende Beispiel zeigt einen vollständigen
curl-Befehl zum Hinzufügen von Metadaten zu einer VM-Instanz:curl -X POST "https://metadata.org-1.zone1.google.gdch.test/virtual-machines/metadata/v1/projects/username-test/vm/lancer-vm" \ -H "Authorization: Bearer $STS_TOKEN" \ -H "Content-Type: application/json" \ -d '{"metadata": {"items": [{"key": "test-key1", "value": "test-value"}]}}'
Metadaten entfernen
gdcloud
Metadaten aus einer bestimmten VM-Instanz entfernen Wenn Sie alle Metadateneinträge entfernen möchten, verwenden Sie das Flag
--all. Sie müssen entweder das Flag--alloder das Flag--keysin Ihrem Befehl verwenden:gdcloud compute instances remove-metadata VM_NAME [--project=PROJECT_NAME] [--keys=KEY,[KEY,...]] [--all]Ersetzen Sie Folgendes:
VM_NAMEist der Name der VM-Instanz.PROJECT_NAME: Der Name des Projekts, in dem sich die VM befindet. Dieser Wert ist optional.KEY: der Schlüsselstring für das Metadatenpaar.
API
Wenn Sie Metadaten mit der API entfernen möchten, müssen Sie ein STS-Token verwenden.
Verwenden Sie die gcloud CLI, um ein
STS-Token zu generieren:gdcloud auth print-identity-token --audiences="https://metadata.ORG_SUFFIX"Ersetzen Sie
ORG_SUFFIXdurch das Organisationssuffix. Wenn die URL der Organisationskonsole beispielsweisehttps://console.example-org.comlautet, istORG_SUFFIXexample-org.com.Die Ausgabe sieht etwa so aus:
STS-Bearer-QPN1nX6GVdoRKCpRx7FD-61gh6RAvWfM6sqjU2knw9n6RFn1jR2n4i1z1irH2HrMLf0tC3hqNaetYzoOBQ6hI2eS7-58_ZZGCMc_oARuX_T9Wmtwe4xlaIS97aDdu9KETEs0akoVYEsmFsWCu2Cu5pdiwjzSuWnRCMZwq9g8BmnPSck1Auf7rOfM7o2FoGE_lbLFZK4C8TCPdloDZAXYcLeNAQMetadaten aus einer bestimmten VM-Instanz entfernen:
curl -X POST "https://metadata.ORG_SUFFIX/virtual-machines/metadata/v1/projects/PROJECT_NAME/vm/VM_NAME" \ -H "Authorization: Bearer STS_TOKEN" \ -H "Content-Type: application/json" \ -d "{"metadata": {}}"Ersetzen Sie Folgendes:
ORG_SUFFIX: das Organisationssuffix. Wenn die URL der Organisationskonsole beispielsweisehttps://console.example-org.comlautet, istORG_SUFFIXexample-org.com.VM_NAMEist der Name der VM-Instanz.PROJECT_NAME: Der Name des Projekts, in dem sich die VM befindet.STS_TOKEN: dasSTS-Token, das über die gcloud CLI generiert wurde.
Metadaten abfragen
gdcloud
So listen Sie alle VM-Instanzmetadaten auf, um Metadatendetails zu sehen:
gdcloud compute instances describe VM_NAME [--project=PROJECT_NAME]Ersetzen Sie Folgendes:
VM_NAMEist der Name der VM-Instanz.PROJECT_NAME: Der Name des Projekts, in dem sich die VM befindet. Dieser Wert ist optional.
Die Ausgabe sieht etwa so aus:
# … metadata: items: - key: Key-1 value: val12 - key: key2 value: lksdjfhk-user1
API
Verwenden Sie die gcloud CLI, um ein
STS-Token zu generieren:gdcloud auth print-identity-token --audiences="https://metadata.ORG_SUFFIX"Ersetzen Sie
ORG_SUFFIXdurch das Organisationssuffix.Die Ausgabe sieht etwa so aus:
STS-Bearer-QPN1nX6GVdoRKCpRx7FD-61gh6RAvWfM6sqjU2knw9n6RFn1jR2n4i1z1irH2HrMLf0tC3hqNaetYzoOBQ6hI2eS7-58_ZZGCMc_oARuX_T9Wmtwe4xlaIS97aDdu9KETEs0akoVYEsmFsWCu2Cu5pdiwjzSuWnRCMZwq9g8BmnPSck1Auf7rOfM7o2FoGE_lbLFZK4C8TCPdloDZAXYcLeNAQSo listen Sie alle VM-Instanzmetadaten auf, um Metadatendetails zu sehen:
curl "https://metadata.ORG_SUFFIX/virtual-machines/metadata/v1/projects/PROJECT_NAME/vm/VM_NAME" \ -H "Authorization: Bearer STS_TOKEN" \ -H "Content-Type: application/json"Ersetzen Sie Folgendes:
ORG_SUFFIX: das Organisationssuffix. Wenn die URL der Organisationskonsole beispielsweisehttps://console.example-org.comlautet, istORG_SUFFIXexample-org.com.VM_NAMEist der Name der VM-Instanz.PROJECT_NAME: Der Name des Projekts, in dem sich die VM befindet. Dieser Wert ist optional.STS_TOKEN: dasSTS-Token, das über die gcloud CLI generiert wurde.
Die Ausgabe sieht etwa so aus:
# … metadata: items: - key: Key-1 value: val12 - key: key2 value: lksdjfhk-user1
Metadaten von einer VM aus abfragen
Sie können VM-Metadaten innerhalb der VM abfragen, ohne eine Verbindung zum Metadatenserver herstellen zu müssen. Verwenden Sie dazu den Befehl curl und hängen Sie den entsprechenden Metadatenschlüssel an die Metadaten-URL an.
Einzelnes Schlüssel-Wert-Paar abfragen
So fragen Sie ein einzelnes KVP aus einer VM heraus ab:
curl "http://metadata.google.internal/computeMetadata/v1/instance/attributes/KEY" \
-H "Metadata-Flavor: Google"
Ersetzen Sie KEY durch den Schlüssel für das Metadatenpaar, das Sie abfragen möchten.
Alle Schlüssel/Wert-Paare mit Werten abfragen
Alle Schlüssel/Wert-Paare aus einer VM mit Schlüssel/Werten abfragen:
curl "http://metadata.google.internal/computeMetadata/v1/instance/attributes/?recursive=true" \
-H "Metadata-Flavor: Google"
Alle Metadatenschlüssel ohne Werte abfragen
Alle Metadatenschlüssel ohne Schlüssel/Wert-Paare aus einer VM abfragen:
curl "http://metadata.google.internal/computeMetadata/v1/instance/attributes/?recursive=false" \
-H "Metadata-Flavor: Google"