Menyediakan VM di node tenant tunggal

Halaman ini menjelaskan cara menyediakan VM di sole-tenant node, yang merupakan server fisik yang menjalankan VM hanya dari satu project. Sebelum menyediakan VM di sole-tenant node, baca ringkasan sole-tenant node.

Sebelum memulai

Membuat template sole-tenant node

Sebelum membuat grup node dan menyediakan VM sole-tenant, Anda harus membuat template sole-tenant node. Template node adalah resource regional yang menentukan properti (seperti jenis node, label afinitas, SSD lokal, akselerator, dan overcommit CPU) untuk setiap node dalam grup node.

Untuk mengonfigurasi dan membuat template node menggunakan konsol Google Cloud , Google Cloud CLI, atau Compute Engine REST API, lihat Membuat template sole-tenant node.

Membuat grup sole-tenant node

Setelah membuat template node, Anda harus membuat grup sole-tenant node. Grup node adalah cluster homogen dari sole-tenant node di zona tertentu yang mewarisi properti dari templatenya. Anda dapat mengonfigurasi kebijakan pemeliharaan host, penskalaan otomatis, dan setelan berbagi lintas project di grup node.

Untuk mengonfigurasi dan membuat grup node menggunakan konsol Google Cloud , Google Cloud CLI, atau Compute Engine REST API, lihat Membuat grup sole-tenant node.

Menyediakan sole-tenant VM

Setelah membuat grup node berdasarkan template node yang dibuat sebelumnya, Anda dapat menyediakan setiap VM pada grup sole-tenant node.

Untuk menyediakan VM pada node atau grup node tertentu yang memiliki label afinitas yang cocok dengan label yang sebelumnya Anda tetapkan ke template node, ikuti prosedur standar untuk membuat instance VM, dan tetapkan label afinitas ke VM.

Atau, Anda dapat menggunakan prosedur berikut untuk menyediakan VM pada sole-tenant node dari halaman detail grup node. Berdasarkan grup node tempat Anda menyediakan VM, Compute Engine menetapkan label afinitas.

Konsol

  1. Di konsol Google Cloud , buka halaman Sole-tenant nodes.

    Buka Sole-tenant nodes

  2. Klik Node groups.

  3. Klik Name grup node untuk menyediakan instance VM, lalu secara opsional, untuk menyediakan VM pada sole-tenant node tertentu, klik nama satu-satunya -tenant untuk menyediakan VM.

  4. Klik Membuat instance untuk menyediakan instance VM di grup node ini, perhatikan nilai yang otomatis diterapkan untuk Name, Region, dan Zone, lalu ubah nilai tersebut sesuai kebutuhan.

  5. Pilih Machine configuration dengan menentukan kelompok mesin, Series, dan jenis mesin. Pilih Seri yang sesuai dengan jenis sole-tenant node.

  6. Ubah Boot disk, Firewall, dan setelan lainnya jika diperlukan.

  7. Klik Sole Tenancy, catat label afinitas node yang ditetapkan secara otomatis, lalu gunakan Browse untuk menyesuaikan sesuai kebutuhan.

  8. Klik Management, dan untuk On host maintenance, pilih salah satu opsi berikut:

    • Migrate VM instance (direkomendasikan): VM yang dimigrasikan ke node lain dalam grup node selama pemeliharaan.

    • Terminate: VM dihentikan selama pemeliharaan.

  9. Pilih salah satu opsi berikut untuk Mulai ulang otomatis:

    • On (direkomendasikan): Memulai ulang VM secara otomatis jika dihentikan untuk pemeliharaan.

    • Off: Tidak otomatis memulai ulang VM setelah pemeliharaan.

  10. Klik Create untuk menyelesaikan pembuatan sole-tenant VM Anda.

gcloud

Gunakan perintah perintah gcloud compute instances create untuk menyediakan VM pada grup sole-tenant node:

gcloud compute instances create VM_NAME \
  [--zone=ZONE \]
  --image-family=IMAGE_FAMILY \
  --image-project=IMAGE_PROJECT \
  --node-group=GROUP_NAME \
  --machine-type=MACHINE_TYPE \
  [--maintenance-policy=MAINTENANCE_POLICY \]
  [--accelerator type=GPU_TYPE,count=GPU_COUNT \]
  [--local-ssd interface=SSD_INTERFACE \]
  [--restart-on-failure]

Tanda --restart-on-failure menunjukkan apakah sole-tenant VM dimulai ulang setelah berhenti. Flag ini diaktifkan secara default. Gunakan --no-restart-on-failure untuk menonaktifkan.

Ganti kode berikut:

  • VM_NAME: nama sole-tenant VM baru.

  • ZONE: zona untuk menyediakan sole-tenant VM.

  • IMAGE_FAMILY: kelompok image dari image yang akan digunakan untuk membuat VM.

  • IMAGE_PROJECT: project image dari kelompok image.

  • GROUP_NAME: nama grup node tempat VM akan disediakan.

  • MACHINE_TYPE: jenis mesin dari sole-tenant VM. Gunakan perintah gcloud compute machine-types list untuk mendapatkan daftar jenis mesin yang tersedia untuk project.

  • MAINTENANCE_POLICY: menentukan perilaku mulai ulang sole-tenant VM selama pemeliharaan. Tetapkan ke salah satu opsi berikut:

    • MIGRATE: VM yang dimigrasikan ke node lain dalam grup node selama pemeliharaan.

    • TERMINATE: VM dihentikan selama pemeliharaan.

  • GPU_TYPE: jenis GPU. Tetapkan ke salah satu jenis akselerator yang ditentukan saat template node dibuat.

  • GPU_COUNT: jumlah GPU dari total yang ditentukan oleh template node yang akan dilampirkan ke VM ini. Nilai defaultnya adalah 1.

  • SSD_INTERFACE: jenis antarmuka SSD lokal. Anda hanya dapat menetapkannya untuk instance yang dibuat dari template node dengan dukungan SSD lokal. Jika Anda menentukan ini saat membuat instance, dan template node tidak mendukung SSD lokal, pembuatan instance akan gagal. Tetapkan ke nvme jika driver image boot disk dioptimalkan untuk NVMe, jika tidak, tetapkan ke scsi. Tentukan flag ini dan nilai yang sesuai satu kali untuk setiap partisi SSD lokal.

REST

Gunakan metode instances.insert untuk menyediakan VM pada grup sole-tenant node:

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/VM_ZONE/instances
{ "machineType": "zones/MACHINE_TYPE_ZONE/machineTypes/MACHINE_TYPE", "name": "VM_NAME", "scheduling": { "onHostMaintenance": MAINTENANCE_POLICY, "automaticRestart": RESTART_ON_FAILURE, "nodeAffinities": [ { "key": "compute.googleapis.com/node-group-name", "operator": "IN", "values": [ "GROUP_NAME" ] } ] }, "networkInterfaces": [ { "network": "global/networks/NETWORK", "subnetwork": "regions/REGION/subnetworks/SUBNETWORK" } ], "guestAccelerators": [ { "acceleratorType": GPU_TYPE, "acceleratorCount": GPU_COUNT } ], "disks": [ { "boot": true, "initializeParams": { "sourceImage": "projects/IMAGE_PROJECT/global/images/family/IMAGE_FAMILY" } }, { "type":"SCRATCH", "initializeParams":{ "diskType":"zones/LOCAL_SSD_ZONE/diskTypes/local-ssd" }, "autoDelete":true, "interface":"SSD_INTERFACE" } ] }

Ganti kode berikut:

  • PROJECT_ID: project ID.

  • VM_ZONE: zona untuk menyediakan sole-tenant VM.

  • MACHINE_TYPE_ZONE: zona jenis mesin.

  • MACHINE_TYPE: jenis mesin dari sole-tenant VM. Gunakan metode machineTypes.list untuk mendapatkan daftar jenis mesin yang tersedia untuk project.

  • VM_NAME: nama sole-tenant VM baru.

  • MAINTENANCE_POLICY: menentukan perilaku mulai ulang sole-tenant VM selama pemeliharaan. Tetapkan ke salah satu opsi berikut:

    • MIGRATE: VM yang dimigrasikan ke node lain dalam grup node selama pemeliharaan.

    • TERMINATE: VM dihentikan selama pemeliharaan.

  • RESTART_ON_FAILURE: menunjukkan apakah sole-tenant VM dimulai ulang setelah berhenti. Defaultnya adalah true.

  • GROUP_NAME: nama grup node tempat VM akan disediakan.

  • NETWORK: URL resource jaringan untuk VM ini.

  • REGION: region yang berisi subnetwork untuk VM ini.

  • SUBNETWORK: URL resource subnetwork untuk VM ini.

  • GPU_TYPE: jenis GPU. Tetapkan ke salah satu jenis akselerator yang ditentukan saat template node dibuat.

  • GPU_COUNT: jumlah GPU dari total yang ditentukan oleh template node yang akan ditambahkan ke VM ini. Nilai defaultnya adalah 1.

  • IMAGE_PROJECT: project image dari kelompok image.

  • IMAGE_FAMILY: kelompok image dari image yang akan digunakan untuk membuat VM.

  • LOCAL_SSD_ZONE: zona SSD lokal.

  • SSD_INTERFACE: jenis antarmuka SSD lokal. Setel ke NVME jika driver image boot disk dioptimalkan untuk NVMe, atau disetel ke SCSI.

Menyediakan grup VM sole-tenant

Grup instance terkelola (MIG) memungkinkan Anda menyediakan grup sole-tenant VM yang identik. Label afinitas memungkinkan Anda menentukan sole-tenant node atau grup node yang akan digunakan untuk menyediakan grup sole-tenant VM.

Untuk MIG regional, Anda harus membuat grup node di setiap zona MIG regional dan Anda harus menentukan afinitas node untuk grup node tersebut di template instance MIG regional.

gcloud

  1. Gunakan perintah gcloud compute instance-templates create untuk membuat template grup instance terkelola bagi grup VM yang akan dibuat di grup sole-tenant node:

    gcloud compute instance-templates create INSTANCE_TEMPLATE \
      --machine-type=MACHINE_TYPE \
      --image-project=IMAGE_PROJECT \
      --image-family=IMAGE_FAMILY \
      --node-group=GROUP_NAME \
      [--accelerator type=GPU_TYPE,count=GPU_COUNT \]
      [--local-ssd interface=SSD_INTERFACE]
    

    Ganti kode berikut:

    • INSTANCE_TEMPLATE: nama untuk template instance baru.

    • MACHINE_TYPE: jenis mesin sole-tenant VM. Gunakan perintah gcloud compute machine-types list untuk mendapatkan daftar jenis mesin yang tersedia untuk project.

    • IMAGE_PROJECT: project image dari kelompok image.

    • IMAGE_FAMILY: kelompok gambar gambar yang akan digunakan untuk membuat VM.

    • GROUP_NAME: nama grup node tempat VM akan disediakan. Atau, jika Anda ingin menggunakan template instance ini untuk membuat MIG regional yang ada di lebih dari satu zona, gunakan flag --node-affinity-file untuk menentukan daftar nilai untuk grup node MIG regional.

    • GPU_TYPE: jenis GPU. Tetapkan ke salah satu jenis akselerator yang ditentukan saat template node dibuat.

    • GPU_COUNT: jumlah GPU dari total yang ditentukan oleh template node yang akan ditambahkan ke VM ini. Nilai defaultnya adalah 1.

    • SSD_INTERFACE: jenis antarmuka SSD lokal. Setel ke nvme jika driver image boot disk dioptimalkan untuk NVMe, atau disetel ke scsi. Tentukan flag ini dan nilai yang sesuai satu kali untuk setiap partisi SSD lokal.

  2. Gunakan perintah perintah gcloud compute instance-groups managed create untuk membuat grup instance terkelola dalam grup sole-tenant node Anda:

    gcloud compute instance-groups managed create INSTANCE_GROUP_NAME \
      --size=SIZE \
      --template=INSTANCE_TEMPLATE \
      --zone=ZONE
    

    Ganti kode berikut:

    • INSTANCE_GROUP_NAME: nama untuk grup instance ini.

    • SIZE: jumlah VM yang akan disertakan dalam grup instance ini. Grup node Anda harus memiliki resource yang cukup untuk mengakomodasi instance dalam grup instance terkelola ini. Gunakan autoscaler grup instance terkelola untuk mengelola ukuran grup instance terkelola secara otomatis.

    • INSTANCE_TEMPLATE: nama template instance yang akan digunakan untuk membuat MIG ini. Template harus memiliki satu atau beberapa label afinitas node yang mengarah ke grup node yang sesuai.

    • ZONE: zona untuk membuat grup instance terkelola. Untuk MIG regional, ganti tanda --zone dengan tanda --region dan tentukan wilayah; tambahkan juga flag --zones untuk menentukan semua zona tempat grup node berada.

REST

  1. Gunakan metode instanceTemplates.insert untuk membuat template grup instance terkelola dalam grup sole-tenant node Anda:

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/TEMPLATE_ZONE/instance-templates
    { "name": "INSTANCE_TEMPLATE", "properties": { "machineType": "zones/MACHINE_TYPE_ZONE/machineTypes/MACHINE_TYPE", "scheduling": { "nodeAffinities": [ { "key": "compute.googleapis.com/node-group-name", "operator": "IN", "values": [ "GROUP_NAME" ] } ] }, "networkInterfaces": [ { "network": "global/networks/NETWORK", "subnetwork": "regions/REGION/subnetworks/SUBNETWORK" } ], "guestAccelerators": [ { "acceleratorType": GPU_TYPE, "acceleratorCount": GPU_COUNT } ], "disks": [ { "boot": true, "initializeParams": { "sourceImage": "projects/IMAGE_PROJECT/global/images/family/IMAGE_FAMILY" } }, { "type":"SCRATCH", "initializeParams":{ "diskType":"zones/LOCAL_SSD_ZONE/diskTypes/local-ssd" }, "autoDelete":true, "interface":"SSD_INTERFACE" } ] } }

    Ganti kode berikut:

    • PROJECT_ID: project ID.

    • TEMPLATE_ZONE: zona untuk membuat template instance.

    • INSTANCE_TEMPLATE: nama template instance baru.

    • MACHINE_TYPE_ZONE: zona jenis mesin.

    • MACHINE_TYPE: jenis mesin dari sole-tenant VM. Gunakan metode machineTypes.list untuk mendapatkan daftar jenis mesin yang tersedia untuk project tersebut.

    • GROUP_NAME: nama grup node tempat VM akan disediakan. Jika Anda ingin menggunakan template instance ini untuk membuat MIG regional yang ada di lebih dari satu zona, tentukan daftar grup node yang ada di zona yang sama dengan zona MIG regional.

    • NETWORK: URL resource jaringan untuk template instance ini.

    • REGION: region yang berisi subnetwork untuk template instance ini.

    • SUBNETWORK: URL resource subnetwork untuk template instance ini.

    • GPU_TYPE: jenis GPU. Tetapkan ke salah satu jenis akselerator yang ditentukan saat template node dibuat.

    • GPU_COUNT: jumlah GPU dari total yang ditentukan oleh template node yang akan ditambahkan ke VM ini. Nilai defaultnya adalah 1.

    • IMAGE_PROJECT: project image dari kelompok image.

    • IMAGE_FAMILY: kelompok image dari image yang akan digunakan untuk membuat VM.

    • LOCAL_SSD_ZONE: zona SSD lokal.

    • SSD_INTERFACE: jenis antarmuka SSD lokal. Setel ke NVME jika driver image boot disk dioptimalkan untuk NVMe, atau disetel ke SCSI.

  2. Gunakan metode instanceGroupManagers.insert untuk membuat MIG dalam grup sole-tenant node berdasarkan template instance yang dibuat sebelumnya. Atau, jika Anda ingin membuat MIG regional, gunakan metode regionInstanceGroupManagers.insert dan tentukan region dan zona semua grup node seperti yang ditentukan dalam template instance.

    Misalnya, untuk membuat MIG zona, gunakan permintaan berikut:

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers
    {
      "baseInstanceName": "NAME_PREFIX",
      "name": "INSTANCE_GROUP_NAME",
      "targetSize": SIZE,
      "instanceTemplate": "global/instanceTemplates/INSTANCE_TEMPLATE"
    }
    

    Ganti kode berikut:

    • PROJECT_ID: project ID.

    • ZONE: zona untuk membuat grup instance terkelola.

    • NAME_PREFIX: nama awalan untuk setiap instance dalam grup instance terkelola.

    • INSTANCE_GROUP_NAME: nama untuk grup instance.

    • SIZE: jumlah VM yang akan disertakan dalam grup instance ini. Grup node Anda harus memiliki resource yang cukup untuk mengakomodasi instance dalam grup instance terkelola ini. Gunakan autoscaler grup instance terkelola untuk mengelola ukuran grup instance terkelola secara otomatis.

    • INSTANCE_TEMPLATE: URL template instance yang akan digunakan untuk membuat grup ini. Template harus memiliki label afinitas node yang mengarah ke grup node yang sesuai.

Mengonfigurasi label afinitas node

Dengan label afinitas node, Anda dapat mengelompokkan grup node secara logis dan menjadwalkan VM pada sekumpulan grup node tertentu. Anda juga dapat menggunakan label afinitas node untuk menjadwalkan VM pada grup node di berbagai zona, dan tetap mempertahankan grup node dalam grup logis. Prosedur berikut adalah contoh penggunaan label afinitas untuk mengaitkan VM dengan grup node tertentu yang digunakan untuk beban kerja produksi. Contoh ini menunjukkan cara menjadwalkan satu VM, tetapi Anda juga dapat menggunakan grup instance terkelola untuk menjadwalkan grup VM.

gcloud

  1. Gunakan perintah gcloud compute sole-tenancy node-templates create untuk membuat template node dengan serangkaian label afinitas untuk workload produksi:

    gcloud compute sole-tenancy node-templates create prod-template \
      --node-type=n1-node-96-624 \
      --node-affinity-labels workload=frontend,environment=prod
    
  2. Gunakan perintah gcloud compute sole-tenancy node-templates describe untuk melihat label afinitas node yang ditetapkan ke template node.

  3. Gunakan perintah gcloud compute sole-tenancy node-groups create untuk membuat grup node yang menggunakan template produksi:

    gcloud compute sole-tenancy node-groups create prod-group \
      --node-template=prod-template \
      --target-size=1
    
  4. Untuk VM produksi, buat file node-affinity-prod.json untuk menentukan afinitas VM produksi Anda. Misalnya, Anda dapat membuat file yang menentukan bahwa VM hanya berjalan pada node dengan afinitas workload=frontend dan environment=prod. Buat file afinitas node menggunakan Cloud Shell atau buat di lokasi pilihan Anda.

    [
      {
        "key" : "workload",
        "operator" : "IN",
        "values" : ["frontend"]
      },
      {
        "key" : "environment",
        "operator" : "IN",
        "values" : ["prod"]
      }
    ]
    
  5. Gunakan file node-affinity-prod.json dengan perintah gcloud compute instances create untuk menjadwalkan VM di grup node dengan label afinitas yang cocok.

    gcloud compute instances create prod-vm \
      --node-affinity-file node-affinity-prod.json \
      --machine-type=n1-standard-2
    
  6. Gunakan perintah gcloud compute instances describe dan centang kolom scheduling untuk melihat afinitas node yang ditetapkan ke VM.

Mengonfigurasi label anti-afinitas node

Label afinitas node dapat dikonfigurasi sebagai label anti-afinitas untuk mencegah VM berjalan pada node tertentu. Misalnya, Anda dapat menggunakan label anti-afinitas untuk mencegah VM yang Anda gunakan untuk tujuan pengembangan dijadwalkan di node yang sama dengan VM produksi Anda. Contoh berikut menunjukkan cara menggunakan label minat untuk mencegah VM berjalan pada grup node tertentu. Contoh ini menunjukkan cara menjadwalkan satu VM, tetapi Anda juga dapat menggunakan grup instance terkelola untuk menjadwalkan grup VM.

gcloud

  1. Untuk VM pengembangan, tentukan afinitas VM pengembangan Anda dengan membuat node-affinity-dev.json di Cloud Shell, atau dengan membuatnya di lokasi pilihan Anda. Misalnya, buat file yang mengonfigurasi VM untuk berjalan di grup node mana pun dengan afinitas workload=frontend selama VM tersebut bukan environment=prod:

    [
      {
        "key" : "workload",
        "operator" : "IN",
        "values" : ["frontend"]
      },
      {
        "key" : "environment",
        "operator" : "NOT_IN",
        "values" : ["prod"]
      }
    ]
    
  2. Gunakan file node-affinity-dev.json dengan perintah gcloud compute instances create untuk membuat VM pengembangan:

    gcloud compute instances create dev-vm \
      --node-affinity-file=node-affinity-dev.json \
      --machine-type=n1-standard-2
    
  3. Gunakan perintah gcloud compute instances describe dan centang kolom scheduling untuk melihat anti-afinitas node yang ditetapkan ke VM.

Langkah berikutnya

  • Untuk mendapatkan informasi tentang cara mengaktifkan penskalaan otomatis pada grup sole-tenant node, lihat Autoscaler grup node.

  • Untuk informasi selengkapnya tentang cara membawa lisensi yang sudah ada ke Google Cloud, lihat Membawa lisensi yang sudah ada.

  • Untuk mengetahui informasi selengkapnya tentang sole-tenant node, lihat sole-tenant node.