建立具備單一主機 Cloud TPU 配量的 MIG

本文說明如何建立代管執行個體群組 (MIG),其中包含多個獨立的單一主機 TPU 節點。

必要條件

完成下列必要條件:

  1. 如「為 TPU 設定專案」一文所述,為 TPU 建立專案。
  2. 如「規劃資源」一文所述,判斷 TPU 需求。

建立含有多個單一主機 TPU 配量的 MIG

如要在 MIG 中建立多個獨立的 TPU VM,請按照下列步驟操作:

  1. 建立執行個體範本。
  2. 建立 MIG。

建立執行個體範本

執行個體範本設定會因您使用的計費選項而異:以量計價、Spot、預留或彈性啟動。如要進一步瞭解使用選項,請參閱「規劃 TPU 資源」。

為隨選 TPU VM 建立執行個體範本

下列指令會建立使用隨選消耗選項的執行個體範本:

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

替換下列預留位置:

  • INSTANCE_TEMPLATE_NAME:執行個體範本的名稱。
  • MACHINE_TYPE:TPU VM 的機型 (例如 ct6e-standard-8t)。
  • IMAGE_FAMILY:TPU VM 的作業系統映像檔系列。如要安裝特定 OS 版本,請使用 --image 旗標。如要進一步瞭解 OS 映像檔,請參閱「OS 映像檔」。
  • IMAGE_PROJECT:包含 OS 映像檔的專案。如果是 TPU 映像檔,則為 ubuntu-os-accelerator-images

建立 TPU Spot VM 的執行個體範本

下列指令會建立使用預先中斷消耗選項的執行個體範本:

 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

替換下列預留位置:

  • INSTANCE_TEMPLATE_NAME:執行個體範本的名稱。
  • MACHINE_TYPE:TPU VM 的機型 (例如 ct6e-standard-8t)。
  • IMAGE_FAMILY:TPU VM 的作業系統映像檔系列。如要安裝特定 OS 版本,請使用 --image 旗標。如要進一步瞭解 OS 映像檔,請參閱「OS 映像檔」。
  • IMAGE_PROJECT:包含 OS 映像檔的專案。如果是 TPU 映像檔,則為 ubuntu-os-accelerator-images

為繫結 TPU 預留項目的 VM 建立執行個體範本

下列指令會建立使用 reservation-bound 消耗選項的執行個體範本:

 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

替換下列預留位置:

  • INSTANCE_TEMPLATE_NAME:執行個體範本的名稱。
  • MACHINE_TYPE:TPU VM 的機型 (例如 ct6e-standard-8t)。
  • RESERVATION_NAME:要使用的特定預訂名稱。
  • IMAGE_FAMILY:TPU VM 的作業系統映像檔系列。如要安裝特定 OS 版本,請使用 --image 旗標。如要進一步瞭解 OS 映像檔,請參閱「OS 映像檔」。
  • IMAGE_PROJECT:包含 OS 映像檔的專案。如果是 TPU 映像檔,則為 ubuntu-os-accelerator-images

為 TPU 彈性啟動型 VM 建立執行個體範本

下列指令會建立使用「彈性啟動」消耗選項的執行個體範本:

 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

替換下列預留位置:

  • INSTANCE_TEMPLATE_NAME:執行個體範本的名稱。
  • MACHINE_TYPE:TPU VM 的機型 (例如 ct6e-standard-8t)。
  • DURATION:TPU VM 的最長執行時間 (例如 1h)。
  • IMAGE_FAMILY:TPU VM 的作業系統映像檔系列。如要安裝特定 OS 版本,請使用 --image 旗標。如要進一步瞭解 OS 映像檔,請參閱「OS 映像檔」。
  • IMAGE_PROJECT:包含 OS 映像檔的專案。如果是 TPU 映像檔,則為 ubuntu-os-accelerator-images

建立 MIG

使用 gcloud compute instance-groups managed create 指令建立可用區或區域性 MIG,如下所示:

  • 如要建立包含單一主機 TPU 配量的可用區 MIG,請使用下列指令:

    gcloud compute instance-groups managed create MIG_NAME \
        --size=MIG_SIZE \
        --template=INSTANCE_TEMPLATE_URL \
        --zone=ZONE
    
  • 如要建立包含單一主機 TPU 配量的區域性 MIG,請使用下列指令:

    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
    

替換下列預留位置:

  • MIG_NAME:MIG 的名稱。
  • MIG_SIZE:MIG 中的 VM 數量。
  • INSTANCE_TEMPLATE_URL:您要用於在 MIG 中建立執行個體的執行個體範本網址。網址可以包含執行個體範本的 ID 或名稱。請指定下列其中一個值:
    • 如果是區域執行個體範本:projects/PROJECT_ID/regions/REGION/instanceTemplates/INSTANCE_TEMPLATE_ID
    • 如果是全域執行個體範本:INSTANCE_TEMPLATE_ID
  • ZONE:要佈建 MIG 的可用區
  • REGION:要佈建 MIG 的區域

在 MIG 中使用自訂名稱建立 VM

您可以為每個 VM 指定自訂名稱,在 MIG 中建立 VM。這有助於偵錯,並確保執行個體是以特定順序建立。

gcloud

使用 create-instance 指令建立具有自訂名稱的 VM,並指定 --instance 旗標。如要建立多個 VM,請針對每個 VM 重複執行指令。否則,請使用 REST API 方法,在單一要求中指定多部 VM。

  • 如果是區域 MIG,請使用下列指令:

    gcloud compute instance-groups managed create-instance MIG_NAME \
        --zone=ZONE \
        --instance=INSTANCE_NAME
    
  • 如果是地區 MIG,請使用下列指令:

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

替換下列預留位置:

  • MIG_NAME:MIG 的名稱。
  • ZONE:MIG 的區域
  • REGION:MIG 的區域
  • INSTANCE_NAME:要新增至指定 MIG 的 VM 名稱。

REST

使用下列其中一種 REST API 方法,建立具有自訂名稱的 VM:

  • 如果是區域 MIG,請使用 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"
         },
         ...
       ]
     }
     

  • 如果是區域 MIG,請使用 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"
         },
         ...
       ]
     }
     

替換下列預留位置:

  • PROJECT_ID:MIG 所在的專案 ID。
  • ZONE:MIG 的區域
  • REGION:MIG 的區域
  • INSTANCE_NAME_1,2,..:要新增至指定 MIG 的 VM 名稱。

後續步驟