Membuat MIG dengan slice Cloud TPU host tunggal

Dokumen ini menjelaskan cara membuat grup instance terkelola (MIG) dengan beberapa slice TPU host tunggal yang independen.

Prasyarat

Lengkapi prasyarat berikut:

  1. Buat project untuk TPU Anda seperti yang dijelaskan dalam Menyiapkan project untuk TPU.
  2. Tentukan persyaratan TPU Anda seperti yang dijelaskan dalam Merencanakan resource Anda.

Membuat MIG dengan beberapa slice TPU host tunggal

Untuk membuat beberapa VM TPU independen di MIG:

  1. Buat template instance.
  2. Buat MIG.

Membuat template instance

Konfigurasi template instance bervariasi berdasarkan opsi penggunaan yang Anda gunakan: sesuai permintaan, Spot, reservasi, atau Flex-start. Untuk mengetahui informasi selengkapnya tentang opsi penggunaan, lihat Merencanakan resource TPU Anda .

Membuat template instance untuk VM TPU sesuai permintaan

Perintah berikut membuat template instance yang menggunakan opsi penggunaan sesuai permintaan:

gcloud

gcloud compute instance-templates create INSTANCE_TEMPLATE_NAME \
    --machine-type=MACHINE_TYPE \
    --maintenance-policy=TERMINATE \
    --image-family=IMAGE_FAMILY \
    --image-project=IMAGE_PROJECT

REST

curl -X POST \
  -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "INSTANCE_TEMPLATE_NAME",
    "properties": {
      "machineType": "MACHINE_TYPE",
      "disks": [
        {
          "boot": true,
          "initializeParams": {
            "sourceImage": "projects/IMAGE_PROJECT/global/images/family/IMAGE_FAMILY"
          }
        }
      ],
      "scheduling": {
        "onHostMaintenance": "TERMINATE"
      },
      "networkInterfaces": [
        {
          "network": "global/networks/default"
        }
      ]
    }
  }' \
  "https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/instanceTemplates"

Ganti placeholder berikut:

  • PROJECT_ID: ID project Anda. Google Cloud
  • INSTANCE_TEMPLATE_NAME: Nama template instance Anda.
  • MACHINE_TYPE: Jenis mesin untuk VM TPU (misalnya, ct6e-standard-8t).
  • IMAGE_FAMILY: Keluarga image OS untuk VM TPU. Jika Anda ingin menginstal versi OS tertentu, gunakan flag --image. Untuk mengetahui informasi selengkapnya tentang image OS, lihat Image OS.
  • IMAGE_PROJECT: Project yang berisi image OS. Untuk image TPU, project ini adalah ubuntu-os-accelerator-images.

Membuat template instance untuk VM Spot TPU

Perintah berikut membuat template instance yang menggunakan opsi penggunaan Spot:

gcloud

gcloud compute instance-templates create INSTANCE_TEMPLATE_NAME \
    --machine-type=MACHINE_TYPE \
    --maintenance-policy=TERMINATE \
    --instance-termination-action=STOP \
    --provisioning-model=SPOT \
    --image-family=IMAGE_FAMILY \
    --image-project=IMAGE_PROJECT

REST

curl -X POST \
  -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "INSTANCE_TEMPLATE_NAME",
    "properties": {
      "machineType": "MACHINE_TYPE",
      "disks": [
        {
          "boot": true,
          "initializeParams": {
            "sourceImage": "projects/IMAGE_PROJECT/global/images/family/IMAGE_FAMILY"
          }
        }
      ],
      "scheduling": {
        "onHostMaintenance": "TERMINATE",
        "provisioningModel": "SPOT",
        "instanceTerminationAction": "STOP"
      },
      "networkInterfaces": [
        {
          "network": "global/networks/default"
        }
      ]
    }
  }' \
  "https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/instanceTemplates"

Ganti placeholder berikut:

  • PROJECT_ID: ID project Anda. Google Cloud
  • INSTANCE_TEMPLATE_NAME: Nama template instance Anda.
  • MACHINE_TYPE: Jenis mesin untuk VM TPU (misalnya, ct6e-standard-8t).
  • IMAGE_FAMILY: Keluarga image OS untuk VM TPU. Jika Anda ingin menginstal versi OS tertentu, gunakan flag --image. Untuk mengetahui informasi selengkapnya tentang image OS, lihat Image OS.
  • IMAGE_PROJECT: Project yang berisi image OS. Untuk image TPU, project ini adalah ubuntu-os-accelerator-images.

Membuat template instance untuk VM TPU yang terikat reservasi

Perintah berikut membuat template instance yang menggunakan opsi penggunaan terikat reservasi:

gcloud

gcloud compute instance-templates create INSTANCE_TEMPLATE_NAME \
    --machine-type=MACHINE_TYPE \
    --maintenance-policy=TERMINATE \
    --instance-termination-action=DELETE \
    --reservation-affinity=specific \
    --provisioning-model=reservation-bound \
    --reservation=RESERVATION_NAME \
    --image-family=IMAGE_FAMILY \
    --image-project=IMAGE_PROJECT

REST

curl -X POST \
  -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "INSTANCE_TEMPLATE_NAME",
    "properties": {
      "machineType": "MACHINE_TYPE",
      "disks": [
        {
          "boot": true,
          "initializeParams": {
            "sourceImage": "projects/IMAGE_PROJECT/global/images/family/IMAGE_FAMILY"
          }
        }
      ],
      "scheduling": {
        "onHostMaintenance": "TERMINATE",
        "provisioningModel": "RESERVATION_BOUND",
        "instanceTerminationAction": "DELETE"
      },
      "reservationAffinity": {
        "consumeReservationType": "SPECIFIC_RESERVATION",
        "key": "compute.googleapis.com/reservation-name",
        "values": [
          "RESERVATION_NAME"
        ]
      },
      "networkInterfaces": [
        {
          "network": "global/networks/default"
        }
      ]
    }
  }' \
  "https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/instanceTemplates"

Ganti placeholder berikut:

  • PROJECT_ID: ID project Anda. Google Cloud
  • INSTANCE_TEMPLATE_NAME: Nama template instance Anda.
  • MACHINE_TYPE: Jenis mesin untuk VM TPU (misalnya, ct6e-standard-8t).
  • RESERVATION_NAME: Nama reservasi tertentu yang ingin Anda gunakan.
  • IMAGE_FAMILY: Keluarga image OS untuk VM TPU. Jika Anda ingin menginstal versi OS tertentu, gunakan flag --image. Untuk mengetahui informasi selengkapnya tentang image OS, lihat Image OS.
  • IMAGE_PROJECT: Project yang berisi image OS. Untuk image TPU, project ini adalah ubuntu-os-accelerator-images.

Membuat template instance untuk VM TPU Flex-start

Perintah berikut membuat template instance yang menggunakan opsi penggunaan Flex-start:

gcloud

gcloud compute instance-templates create INSTANCE_TEMPLATE_NAME \
    --machine-type=MACHINE_TYPE \
    --maintenance-policy=TERMINATE \
    --instance-termination-action=DELETE \
    --provisioning-model=FLEX_START \
    --max-run-duration=DURATION \
    --image-family=IMAGE_FAMILY \
    --image-project=IMAGE_PROJECT

REST

curl -X POST \
  -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "INSTANCE_TEMPLATE_NAME",
    "properties": {
      "machineType": "MACHINE_TYPE",
      "disks": [
        {
          "boot": true,
          "initializeParams": {
            "sourceImage": "projects/IMAGE_PROJECT/global/images/family/IMAGE_FAMILY"
          }
        }
      ],
      "scheduling": {
        "onHostMaintenance": "TERMINATE",
        "provisioningModel": "FLEX_START",
        "instanceTerminationAction": "DELETE",
        "maxRunDuration": {
          "seconds": "DURATION"
        }
      },
      "networkInterfaces": [
        {
          "network": "global/networks/default"
        }
      ]
    }
  }' \
  "https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/instanceTemplates"

Ganti placeholder berikut:

  • PROJECT_ID: ID project Anda. Google Cloud
  • INSTANCE_TEMPLATE_NAME: Nama template instance Anda.
  • MACHINE_TYPE: Jenis mesin untuk VM TPU (misalnya, ct6e-standard-8t).
  • DURATION: Durasi maksimum VM TPU berjalan. Untuk REST, tentukan durasi ini sebagai string yang berisi jumlah detik yang diikuti dengan "s" (misalnya, 3600s untuk 1 jam, atau 604800s untuk 7 hari).
  • IMAGE_FAMILY: Keluarga image OS untuk VM TPU. Jika Anda ingin menginstal versi OS tertentu, gunakan flag --image. Untuk mengetahui informasi selengkapnya tentang image OS, lihat Image OS.
  • IMAGE_PROJECT: Project yang berisi image OS. Untuk image TPU, project ini adalah ubuntu-os-accelerator-images.

Membuat MIG

Untuk membuat MIG zona yang berisi slice TPU host tunggal, gunakan perintah berikut:

gcloud

gcloud compute instance-groups managed create MIG_NAME \
    --size=MIG_SIZE \
    --template=INSTANCE_TEMPLATE_URL \
    --zone=ZONE

REST

curl -X POST \
  -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "MIG_NAME",
    "targetSize": MIG_SIZE,
    "instanceTemplate": "INSTANCE_TEMPLATE_URL"
  }' \
  "https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers"

Ganti placeholder berikut:

  • PROJECT_ID: ID project Anda. Google Cloud
  • MIG_NAME: Nama MIG Anda.
  • MIG_SIZE: Ukuran MIG.
  • INSTANCE_TEMPLATE_URL: URL template instance yang ingin Anda gunakan untuk membuat instance di MIG. URL dapat berisi ID atau nama template instance. Tentukan salah satu nilai berikut:
    • Untuk template instance regional: projects/PROJECT_ID/regions/REGION/instanceTemplates/INSTANCE_TEMPLATE_ID
    • Untuk template instance global: INSTANCE_TEMPLATE_ID
  • ZONE: Zona untuk MIG Anda.

Untuk membuat MIG regional yang berisi slice TPU host tunggal, gunakan perintah berikut:

gcloud

gcloud compute instance-groups managed create MIG_NAME \
    --size=MIG_SIZE \
    --template=INSTANCE_TEMPLATE_URL \
    --region=REGION \
    --target-distribution-shape=ANY_SINGLE_ZONE \
    --instance-redistribution-type=none

REST

curl -X POST \
  -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "MIG_NAME",
    "targetSize": MIG_SIZE,
    "instanceTemplate": "INSTANCE_TEMPLATE_URL",
    "distributionPolicy": {
      "targetShape": "ANY_SINGLE_ZONE"
    },
    "updatePolicy": {
      "instanceRedistributionType": "NONE"
    }
  }' \
  "https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceGroupManagers"

Ganti placeholder berikut:

  • PROJECT_ID: ID project Anda. Google Cloud
  • MIG_NAME: Nama MIG Anda.
  • MIG_SIZE: Jumlah VM di MIG.
  • INSTANCE_TEMPLATE_URL: URL template instance yang ingin Anda gunakan untuk membuat instance di MIG. URL dapat berisi ID atau nama template instance. Tentukan salah satu nilai berikut:
    • Untuk template instance regional: projects/PROJECT_ID/regions/REGION/instanceTemplates/INSTANCE_TEMPLATE_ID
    • Untuk template instance global: INSTANCE_TEMPLATE_ID
  • ZONE: Zona tempat Anda ingin MIG Anda di-provisioning.
  • REGION: Region tempat Anda ingin MIG Anda di-provisioning.

Membuat VM dengan nama kustom di MIG

Anda dapat membuat VM di MIG dengan menentukan nama kustom untuk setiap VM. Hal ini berguna untuk proses debug dan memastikan instance dibuat dalam urutan tertentu.

gcloud

Buat VM dengan nama kustom menggunakan perintah create-instancedan tentukan flag --instance. Untuk membuat beberapa VM, ulangi perintah untuk setiap VM. Jika tidak, gunakan metode REST API untuk menentukan beberapa VM dalam satu permintaan.

  • Untuk MIG zona, gunakan perintah berikut:

    gcloud compute instance-groups managed create-instance MIG_NAME \
        --zone=ZONE \
        --instance=INSTANCE_NAME
    
  • Untuk MIG regional, gunakan perintah berikut:

    gcloud compute instance-groups managed create-instance MIG_NAME \
        --region=REGION \
        --instance=INSTANCE_NAME
    

Ganti placeholder berikut:

  • MIG_NAME: Nama MIG Anda.
  • ZONE: Zona MIG.
  • REGION: Region MIG.
  • INSTANCE_NAME: Nama VM yang akan ditambahkan ke MIG yang ditentukan.

REST

Buat VM dengan nama kustom menggunakan salah satu metode REST API berikut:

  • Untuk MIG zona, gunakan instanceGroupManagers.createInstances.

     POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers/MIG_NAME/createInstances
     {
       "instances": [
         {
           "name": "INSTANCE_NAME_1"
         },
         {
           "name": "INSTANCE_NAME_2"
         },
         ...
       ]
     }
     

  • Untuk MIG regional, gunakan regionInstanceGroupManagers.createInstances.

     POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceGroupManagers/MIG_NAME/createInstances
     {
       "instances": [
         {
           "name": "INSTANCE_NAME_1"
         },
         {
           "name": "INSTANCE_NAME_2"
         },
         ...
       ]
     }
     

Ganti placeholder berikut:

  • PROJECT_ID: ID project tempat MIG berada.
  • ZONE: Zona MIG.
  • REGION: Region MIG.
  • INSTANCE_NAME_1,2,..: Nama VM yang akan ditambahkan ke MIG yang ditentukan.

Langkah berikutnya