Melihat dan mempertahankan metadata VM

Setiap mesin virtual (VM) menyimpan metadatanya di server metadata. Anda dapat menambahkan, menghapus, dan melihat metadata di VM appliance air-gapped Google Distributed Cloud (GDC) sebagai key-value pair (KVP).

Anda dapat menggunakan KVP metadata untuk menyimpan informasi yang dapat membantu Anda mengidentifikasi VM, seperti nama server. Anda dapat mengakses metadata dari luar dan dalam VM, serta menggunakan metadata untuk meneruskan informasi antar-sistem yang berbeda.

Sebelum memulai

Untuk menggunakan perintah antarmuka command line (CLI) gdcloud, pastikan Anda telah mendownload, menginstal, dan mengonfigurasi CLI gdcloud. Semua perintah untuk appliance air-gapped GDC menggunakan CLI gdcloud atau kubectl, dan memerlukan lingkungan sistem operasi (OS).

Mendapatkan jalur file kubeconfig

Untuk menjalankan perintah terhadap server Management API, pastikan Anda memiliki resource berikut:

  1. Temukan nama server Management API, atau tanyakan kepada Administrator Platform (PA) Anda nama servernya.

  2. Login dan buat file kubeconfig untuk server Management API jika Anda belum memilikinya.

  3. Gunakan jalur untuk menggantikan MANAGEMENT_API_SERVER{"</var>"}} dalam petunjuk ini.

Meminta izin dan akses

Untuk melakukan tugas yang tercantum di halaman ini, Anda harus memiliki peran ProjectVirtualMachine Admin. Ikuti langkah-langkah untuk memverifikasi atau meminta Admin IAM Project memberi Anda peran Project VirtualMachine Admin (project-vm-admin) di namespace project tempat VM berada.

Untuk operasi VM menggunakan konsol GDC atau gdcloud CLI, minta Admin IAM Project Anda untuk memberi Anda peran Project VirtualMachine Admin dan peran Project Viewer (project-viewer).

Menambahkan atau menghapus metadata

Bagian ini menjelaskan cara menambahkan dan menghapus metadata dari instance VM yang ada. Anda dapat menggunakan metadata untuk menyimpan pasangan nilai kunci arbitrer yang ingin ditambahkan ke VM. Misalnya, Anda mungkin ingin menambahkan dan mengelola metadata kustom Anda sendiri untuk mengidentifikasi lingkungan yang berbeda, seperti test dan production.

Tambah metadata

gdcloud

  • Tambahkan metadata ke instance VM tertentu. Anda harus menyertakan salah satu flag --metadata atau --metadata-from-file dalam perintah Anda. Anda juga dapat menambahkan kedua flag dalam perintah yang sama jika diperlukan untuk kasus penggunaan Anda:

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

    Ganti kode berikut:

    • VM_NAME: nama instance VM.
    • PROJECT: nama project tempat VM berada. Nilai ini bersifat opsional.
    • KEY: kunci untuk pasangan metadata.
    • KEY_VALUE: nilai untuk pasangan metadata.
    • LOCAL_FILE_PATH: nilai pasangan metadata dari file lokal.

API

Untuk menambahkan metadata dengan API, Anda harus menggunakan token STS.

  1. Gunakan gdcloud CLI untuk membuat token STS:

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

    Ganti ORG_SUFFIX dengan akhiran organisasi. Misalnya, jika URL konsol organisasi adalah https://console.example-org.com, ORG_SUFFIX adalah example-org.com

    Outputnya mirip dengan hal berikut ini:

    STS-Bearer-QPN1nX6GVdoRKCpRx7FD-61gh6RAvWfM6sqjU2knw9n6RFn1jR2n4i1z1irH2HrMLf0tC3hqNaetYzoOBQ6hI2eS7-58_ZZGCMc_oARuX_T9Wmtwe4xlaIS97aDdu9KETEs0akoVYEsmFsWCu2Cu5pdiwjzSuWnRCMZwq9g8BmnPSck1Auf7rOfM7o2FoGE_lbLFZK4C8TCPdloDZAXYcLeNAQ
    
  2. Tambahkan metadata ke instance VM tertentu:

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

    Ganti kode berikut:

    • ORG_SUFFIX: akhiran organisasi. Misalnya, jika URL konsol organisasi adalah https://console.example-org.com, maka ORG_SUFFIX adalah example-org.com.
    • VM_NAME: nama instance VM.
    • PROJECT: nama project tempat VM berada. Nilai ini bersifat opsional.
    • STS_TOKEN: token STS yang dihasilkan dari gdcloud CLI.

Menghapus metadata

gdcloud

  • Menghapus metadata dari instance VM tertentu. Jika Anda ingin menghapus semua entri metadata, gunakan flag --all. Anda harus menggunakan salah satu flag --all atau --keys dalam perintah Anda:

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

    Ganti kode berikut:

    • VM_NAME: nama instance VM.
    • PROJECT: nama project tempat VM berada. Nilai ini bersifat opsional.
    • KEY: string kunci untuk pasangan metadata.

API

Untuk menghapus metadata dengan API, Anda harus menggunakan token STS.

  1. Gunakan gdcloud CLI untuk membuat token STS:

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

    Ganti ORG_SUFFIX dengan akhiran organisasi. Misalnya, jika URL konsol organisasi adalah https://console.example-org.com, ORG_SUFFIX adalah example-org.com.

    Outputnya mirip dengan hal berikut ini:

    STS-Bearer-QPN1nX6GVdoRKCpRx7FD-61gh6RAvWfM6sqjU2knw9n6RFn1jR2n4i1z1irH2HrMLf0tC3hqNaetYzoOBQ6hI2eS7-58_ZZGCMc_oARuX_T9Wmtwe4xlaIS97aDdu9KETEs0akoVYEsmFsWCu2Cu5pdiwjzSuWnRCMZwq9g8BmnPSck1Auf7rOfM7o2FoGE_lbLFZK4C8TCPdloDZAXYcLeNAQ
    
  2. Menghapus metadata dari instance VM tertentu:

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

    Ganti kode berikut:

    • ORG_SUFFIX: akhiran organisasi. Misalnya, jika URL konsol organisasi adalah https://console.example-org.com, maka ORG_SUFFIX adalah example-org.com.
    • VM_NAME: nama instance VM.
    • PROJECT: nama project tempat VM berada.
    • STS_TOKEN: token STS yang dihasilkan dari gdcloud CLI.

Mengkueri metadata

gdcloud

  • Mencantumkan semua metadata instance VM untuk melihat detail metadata:

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

    Ganti kode berikut:

    • VM_NAME: nama instance VM.
    • PROJECT: nama project tempat VM berada. Nilai ini bersifat opsional.

    Outputnya mirip dengan hal berikut ini:

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

API

  1. Gunakan gdcloud CLI untuk membuat token STS:

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

    Ganti ORG_SUFFIX dengan akhiran organisasi.

    Outputnya mirip dengan hal berikut ini:

    STS-Bearer-QPN1nX6GVdoRKCpRx7FD-61gh6RAvWfM6sqjU2knw9n6RFn1jR2n4i1z1irH2HrMLf0tC3hqNaetYzoOBQ6hI2eS7-58_ZZGCMc_oARuX_T9Wmtwe4xlaIS97aDdu9KETEs0akoVYEsmFsWCu2Cu5pdiwjzSuWnRCMZwq9g8BmnPSck1Auf7rOfM7o2FoGE_lbLFZK4C8TCPdloDZAXYcLeNAQ
    
  2. Mencantumkan semua metadata instance VM untuk melihat detail metadata:

    curl "https://metadata.ORG_SUFFIX/virtual-machines/metadata/v1/projects/PROJECT/vm/VM_NAME" \
    -H "Authorization: Bearer STS_TOKEN" \
    -H "Content-Type: application/json"
    

    Ganti kode berikut:

    • ORG_SUFFIX: akhiran organisasi. Misalnya, jika URL konsol organisasi adalah https://console.example-org.com, maka ORG_SUFFIX adalah example-org.com
    • VM_NAME: nama instance VM.
    • PROJECT: nama project tempat VM berada. Nilai ini bersifat opsional.
    • STS_TOKEN: token STS yang dihasilkan dari gdcloud CLI.

    Outputnya mirip dengan hal berikut ini:

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

Mengkueri metadata dari dalam VM

Anda dapat membuat kueri metadata VM dari dalam VM, tanpa harus terhubung ke server metadata. Untuk melakukannya, gunakan perintah curl dan tambahkan kunci metadata yang berlaku ke URL metadata.

Mengkueri satu KVP

Membuat kueri KVP tunggal dari dalam VM:

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

Ganti KEY dengan kunci untuk pasangan metadata yang ingin Anda kueri.

Mengueri semua pasangan KVP dengan nilai

Kueri semua pasangan KVP dari dalam VM dengan nilai kunci:

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

Membuat kueri semua kunci metadata tanpa nilai

Kueri semua kunci metadata dari dalam VM tanpa nilai kunci:

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