VM-Metadaten ansehen und verwalten

Die Metadaten jeder virtuellen Maschine (VM) werden auf einem Metadatenserver gespeichert. Sie können Metadaten in Ihren Google Distributed Cloud-VMs (GDC) mit Air Gap als Schlüssel/Wert-Paare (KVPs) hinzufügen, entfernen und ansehen.

Sie können die KVP-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 die Befehlszeilenbefehle (Command-Line Interface, CLI) von gdcloud verwenden möchten, müssen Sie die gdcloud-CLI heruntergeladen, installiert und konfiguriert haben. Für alle Befehle für Distributed Cloud wird die gdcloud- oder kubectl-CLI verwendet. Außerdem 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:

  1. Melden Sie sich an und generieren Sie die kubeconfig-Datei für den Management API-Server, falls Sie noch keine haben.

  2. Verwenden Sie den Pfad zur kubeconfig-Datei des Management API-Servers, um MANAGEMENT_API_SERVER in dieser Anleitung zu ersetzen.

Berechtigungen und Zugriff anfordern

Zum Ausführen der auf dieser Seite aufgeführten Aufgaben benötigen Sie die Rolle „ProjectVirtualMachine Admin“. Folgen Sie der Anleitung, um entweder die Rolle „Project VirtualMachine Admin“ (project-vm-admin) im Namespace des Projekts, in dem sich die VM befindet, zu bestätigen oder von Ihrem Projekt-IAM-Administrator zuweisen zu lassen.

Wenn Sie VM-Vorgänge über die GDC-Konsole oder die gdcloud-CLI ausführen möchten, bitten Sie Ihren Projekt-IAM-Administrator, Ihnen die Rolle „Project VirtualMachine Admin“ und die Rolle „Project Viewer“ (project-viewer) zuzuweisen.

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 --metadata oder das Flag --metadata-from-file in den Befehl einfügen. Sie können bei Bedarf auch beide Flags im selben Befehl hinzufügen:

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

    Ersetzen Sie Folgendes:

    • VM_NAME ist der Name der VM-Instanz.
    • PROJECT: 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.

  1. Verwenden Sie die gcloud CLI, um ein STS-Token zu generieren:

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

    Ersetzen Sie ORG_SUFFIX durch das Organisationssuffix. Wenn die URL der Organisationskonsole beispielsweise https://console.example-org.com lautet, ist ORG_SUFFIX gleich example-org.com.

    Die Ausgabe sieht etwa so aus:

    STS-Bearer-QPN1nX6GVdoRKCpRx7FD-61gh6RAvWfM6sqjU2knw9n6RFn1jR2n4i1z1irH2HrMLf0tC3hqNaetYzoOBQ6hI2eS7-58_ZZGCMc_oARuX_T9Wmtwe4xlaIS97aDdu9KETEs0akoVYEsmFsWCu2Cu5pdiwjzSuWnRCMZwq9g8BmnPSck1Auf7rOfM7o2FoGE_lbLFZK4C8TCPdloDZAXYcLeNAQ
    
  2. Metadaten einer bestimmten VM-Instanz hinzufügen:

    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"}]}}"
    

    Ersetzen Sie Folgendes:

    • ORG_SUFFIX: das Organisationssuffix. Wenn die URL der Organisationskonsole beispielsweise https://console.example-org.com lautet, ist ORG_SUFFIX example-org.com.
    • VM_NAME ist der Name der VM-Instanz.
    • PROJECT: Der Name des Projekts, in dem sich die VM befindet. Dieser Wert ist optional.
    • STS_TOKEN: Das STS-Token, das über die gcloud CLI generiert wurde.

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 --all oder --keys in Ihrem Befehl verwenden:

    gdcloud compute instances remove-metadata VM_NAME
        [--project=PROJECT]
        [--keys=KEY,[KEY,...]]
        [--all]
    

    Ersetzen Sie Folgendes:

    • VM_NAME ist der Name der VM-Instanz.
    • PROJECT: 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.

  1. Verwenden Sie die gcloud CLI, um ein STS-Token zu generieren:

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

    Ersetzen Sie ORG_SUFFIX durch das Organisationssuffix. Wenn die URL der Organisationskonsole beispielsweise https://console.example-org.com lautet, ist ORG_SUFFIX example-org.com.

    Die Ausgabe sieht etwa so aus:

    STS-Bearer-QPN1nX6GVdoRKCpRx7FD-61gh6RAvWfM6sqjU2knw9n6RFn1jR2n4i1z1irH2HrMLf0tC3hqNaetYzoOBQ6hI2eS7-58_ZZGCMc_oARuX_T9Wmtwe4xlaIS97aDdu9KETEs0akoVYEsmFsWCu2Cu5pdiwjzSuWnRCMZwq9g8BmnPSck1Auf7rOfM7o2FoGE_lbLFZK4C8TCPdloDZAXYcLeNAQ
    
  2. Metadaten aus einer bestimmten VM-Instanz entfernen:

    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"}]}}"
    

    Ersetzen Sie Folgendes:

    • ORG_SUFFIX: das Organisationssuffix. Wenn die URL der Organisationskonsole beispielsweise https://console.example-org.com lautet, ist ORG_SUFFIX example-org.com.
    • VM_NAME ist der Name der VM-Instanz.
    • PROJECT: Der Name des Projekts, in dem sich die VM befindet.
    • STS_TOKEN: Das STS-Token, das über die gcloud CLI generiert wurde.

Metadaten abfragen

gdcloud

  • So listen Sie alle VM-Instanzmetadaten auf, um Metadatendetails aufzurufen:

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

    Ersetzen Sie Folgendes:

    • VM_NAME ist der Name der VM-Instanz.
    • PROJECT: 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

  1. Verwenden Sie die gcloud CLI, um ein STS-Token zu generieren:

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

    Ersetzen Sie ORG_SUFFIX durch das Organisationssuffix.

    Die Ausgabe sieht etwa so aus:

    STS-Bearer-QPN1nX6GVdoRKCpRx7FD-61gh6RAvWfM6sqjU2knw9n6RFn1jR2n4i1z1irH2HrMLf0tC3hqNaetYzoOBQ6hI2eS7-58_ZZGCMc_oARuX_T9Wmtwe4xlaIS97aDdu9KETEs0akoVYEsmFsWCu2Cu5pdiwjzSuWnRCMZwq9g8BmnPSck1Auf7rOfM7o2FoGE_lbLFZK4C8TCPdloDZAXYcLeNAQ
    
  2. So listen Sie alle VM-Instanzmetadaten auf, um Metadatendetails aufzurufen:

    curl "https://metadata.ORG_SUFFIX/virtual-machines/metadata/v1/projects/PROJECT/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 beispielsweise https://console.example-org.com lautet, ist ORG_SUFFIX example-org.com.
    • VM_NAME ist der Name der VM-Instanz.
    • PROJECT: Der Name des Projekts, in dem sich die VM befindet. Dieser Wert ist optional.
    • STS_TOKEN: Das STS-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üsselwerten 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"