建立彈性啟動 VM

本文說明如何建立彈性啟動虛擬機器 (VM) 執行個體。彈性啟動 VM 最多會運作七天,可協助您以折扣價取得 GPU 等高需求資源。這些功能讓彈性啟動 VM 成為執行短期工作負載的經濟實惠解決方案,例如模型微調和批次推論。

如要進一步瞭解彈性啟動 VM 的主要特徵,包括建立時適用的規定和限制,請參閱「關於彈性啟動 VM」。

事前準備

  • 請根據要使用的機器類型,查看下列其中一項設定需求:

  • 如果尚未設定驗證,請先完成設定。 驗證可確認您的身分,以便存取 Google Cloud 服務和 API。如要從本機開發環境執行程式碼或範例,可以選取下列任一選項,向 Compute Engine 進行驗證:

    Select the tab for how you plan to use the samples on this page:

    Console

    When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.

    gcloud

    1. 安裝 Google Cloud CLI。 安裝完成後,執行下列指令初始化 Google Cloud CLI:

      gcloud init

      如果您使用外部識別資訊提供者 (IdP),請先 使用聯合身分登入 gcloud CLI

    2. Set a default region and zone.

    REST

    如要在本機開發環境中使用本頁的 REST API 範例,請使用您提供給 gcloud CLI 的憑證。

      安裝 Google Cloud CLI。 安裝完成後,執行下列指令初始化 Google Cloud CLI:

      gcloud init

      如果您使用外部識別資訊提供者 (IdP),請先 使用聯合身分登入 gcloud CLI

    詳情請參閱 Google Cloud 驗證說明文件中的「Authenticate for using REST」。

必要的角色

如要取得建立彈性啟動 VM 所需的權限,請要求管理員授予您專案的 Compute 執行個體管理員 (v1) (roles/compute.instanceAdmin.v1) IAM 角色。如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和機構的存取權」。

這個預先定義的角色具備建立彈性啟動 VM 所需的權限。如要查看確切的必要權限,請展開「必要權限」部分:

所需權限

如要建立彈性啟動 VM,您必須具備下列權限:

  • 專案的 compute.instances.create
  • 如要使用自訂映像檔建立 VM: compute.images.useReadOnly 在映像檔上
  • 如要使用快照建立 VM: compute.snapshots.useReadOnly 快照
  • 如要使用執行個體範本建立 VM,請按照下列步驟操作: compute.instanceTemplates.useReadOnly 在執行個體範本上
  • 如要為 VM 指定子網路,請在專案或所選子網路上授予 compute.subnetworks.use 權限。
  • 如要為 VM 指定靜態 IP 位址: 專案的 compute.addresses.use
  • 使用虛擬私有雲網路時,如要將外部 IP 位址指派給 VM: compute.subnetworks.useExternalIp 專案或所選子網路的權限
  • 如要將舊版網路指派給 VM,請按照下列步驟操作: compute.networks.use 專案
  • 使用舊版網路時,如要將外部 IP 位址指派給 VM,請在專案中設定 compute.networks.useExternalIp
  • 如要為 VM 設定 VM 執行個體中繼資料,請在專案中執行下列指令: compute.instances.setMetadata
  • 如要為 VM 設定標記,請按照下列步驟操作: compute.instances.setTags 在 VM 上
  • 如要為 VM 設定標籤,請按照下列步驟操作: compute.instances.setLabels 在 VM 上
  • 如要設定 VM 使用的服務帳戶: compute.instances.setServiceAccount 在 VM 上
  • 為 VM 建立新磁碟: compute.disks.create 專案
  • 如要以唯讀或讀寫模式附加現有磁碟: 磁碟的 compute.disks.use
  • 如要以唯讀模式連接現有磁碟: compute.disks.useReadOnly 磁碟的權限

您或許還可透過自訂角色或其他預先定義的角色取得這些權限。

建立彈性啟動 VM

如要建立彈性啟動 VM,請選取下列任一選項:

主控台

  1. 前往 Google Cloud 控制台的「Create an instance」(建立執行個體) 頁面。

    前往「建立執行個體」

  2. 在「機器設定」窗格中,完成下列步驟:

    1. 在「Name」(名稱) 欄位,輸入彈性啟動 VM 的名稱。

    2. 指定要建立 VM 的「Region」(區域) 和「Zone」(可用區)。如要查看可使用所需機器類型的地區和區域,請參閱「可用地區與區域」。

    3. 根據要執行的工作負載,指定機器類型,如下所示:

      • 如要指定加速器最佳化機器類型,請按照下列步驟操作:

        1. 按一下「GPU」分頁標籤。

        2. 在「GPU type」(GPU 類型) 清單中,選取 GPU 類型,但請勿選取「NVIDIA GB200 192GB」(A4X) 和「NVIDIA RTX PRO 600」(G4)

        3. 在「Number of GPUs」(GPU 數量) 清單中,選取要附加至 VM 的 GPU 數量。

        4. 選用:如果 GPU 型號支援適用於圖形工作負載的 NVIDIA RTX 虛擬工作站 (vWS),且您打算執行需要大量圖形的工作負載,請選取「啟用虛擬工作站 (NVIDIA GRID)」

      • 如要指定 H4D 機器類型,請按照下列步驟操作:

        1. 按一下「Compute optimized」(運算最佳化) 分頁標籤。

        2. 在「系列」欄中,選取「H4D」

  3. 在導覽選單中,按一下「進階」。在隨即顯示的「進階」窗格中,完成下列步驟:

    1. 在「Reservations」(預留項目) 部分,選取「Don't use a reservation」(不使用預留項目)

    2. 在「佈建模式」專區的「VM 佈建模式」清單中,選取「彈性啟動」

    3. 在「Enter number of hours」(輸入時數) 欄位中,輸入 VM 的執行時間上限。這個值必須介於 36 秒 (0.01) 和七天 (168,或 168 小時) 之間。

    4. 選取「設定建立 VM 的等待時間」核取方塊。然後,根據工作負載的區域需求,建議您指定下列其中一個時間長度,提高 VM 建立要求成功的機率:

      • 如果工作負載要求您在特定可用區中建立 VM,請指定 90 秒2 小時之間的時長。時間越長,獲得資源的機率就越高。

      • 如果 VM 可以在區域內的任何可用區執行,請指定 0 秒的持續時間,或取消勾選「設定建立 VM 的等待時間」核取方塊。這項動作會指定 Compute Engine 僅在資源可立即使用時才分配資源。如果 VM 建立要求因資源無法使用而失敗,請在不同可用區重試要求。

  4. 如要建立彈性啟動 VM,請按一下「建立」

gcloud

如要建立彈性啟動 VM,請使用 gcloud compute instances create 指令搭配下列旗標:

  • --request-valid-for-duration 旗標

  • --provisioning-model=FLEX_START 旗標

  • --instance-termination-action 旗標

  • --max-run-duration 旗標

  • --maintenance-policy=TERMINATE 旗標

  • --reservation-affinity=none 旗標

如要建立彈性啟動 VM,請執行下列指令:

gcloud compute instances create VM_NAME \
    --machine-type=MACHINE_TYPE \
    --zone=ZONE \
    --request-valid-for-duration=VALID_FOR_DURATION \
    --provisioning-model=FLEX_START \
    --instance-termination-action=TERMINATION_ACTION \
    --max-run-duration=RUN_DURATION \
    --maintenance-policy=TERMINATE \
    --reservation-affinity=none

更改下列內容:

  • VM_NAME:新 VM 的名稱。

  • MACHINE_TYPE:用於彈性啟動 VM 的機器類型。如果您指定 G2 或 N1 機器類型,請注意下列事項:

    • 對於 G2 機器類型,您可以選擇指定要用於圖形密集型工作負載的 NVIDIA RTX 虛擬工作站 (vWS)。如要這麼做,請在指令中加入 --accelerator 標記,如下所示:

      --accelerator=count=VWS_ACCELERATOR_COUNT,type=nvidia-l4-vws
      

      VWS_ACCELERATOR_COUNT 替換為工作負載所需的 NVIDIA RTX vWS 數量。

    • 如果是 N1 機器類型,您必須指定要附加至 VM 的 GPU 數量和類型。否則 VM 建立作業會失敗。如要將 GPU 附加至 N1 VM,請在指令中加入 --accelerator 旗標,如下所示:

      --accelerator=count=NUMBER_OF_ACCELERATORS,type=ACCELERATOR_TYPE
      

      更改下列內容:

  • ZONE:要建立 VM 的區域。 如要確認您指定的機器類型在要建立 VM 的區域是否可用,請參閱可用地區與區域

  • VALID_FOR_DURATION:等待佈建所要求資源的最長時間,格式為數字後接單位 (smhd)。舉例來說,值為 30m 代表 30 分鐘,值為 1h2m3s 代表 1 小時 2 分 3 秒。根據工作負載的區域需求,建議您指定下列其中一個時間長度,提高 VM 建立要求成功的機率:

    • 如果工作負載要求您在特定可用區中建立 VM,請指定 90 秒 (90s) 到兩小時 (2h) 的時間長度。時間越長,取得資源的機率就越高。

    • 如果 VM 可以在區域內的任何區域執行,請指定零秒的持續時間 (0s)。這個值表示 Compute Engine 只會在資源可立即使用時分配資源。如果建立要求因資源無法使用而失敗,請在不同區域重試要求。

  • TERMINATION_ACTION:是否要在 VM 執行時間結束時停止或刪除 VM。指定下列其中一個值:

    • 如要停止 VM:STOP

    • 如要刪除 VM,請執行 DELETE

  • RUN_DURATION:虛擬機器的最長執行時間,格式為數字加上單位 (smhd),時間到期後 Compute Engine 會刪除虛擬機器。值必須介於 10 分鐘和 7 天之間。

REST

如要建立彈性啟動 VM,請對 instances.insert 方法發出 POST 要求。在要求主體中加入下列欄位:

  • params.requestValidForDuration 欄位。

  • scheduling.provisioningModel 欄位設為 FLEX_START

  • scheduling.instanceTerminationAction 欄位。

  • scheduling.maxRunDuration 欄位。

  • scheduling.onHostMaintenance 欄位設為 TERMINATE

  • reservationAffinity.consumeReservationType已設為 NO_RESERVATION

如要建立彈性啟動 VM,請發出 POST 要求,如下所示:

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances

{
  "name": "VM_NAME",
  "machineType": "zones/ZONE/machineTypes/MACHINE_TYPE",
  "disks": [
    {
      "initializeParams": {
        "sourceImage": "projects/IMAGE_PROJECT/global/images/IMAGE"
      },
      "boot": true
    }
  ],
  "networkInterfaces": [
    {
      "network": "global/networks/default"
    }
  ],
  "params": {
    "requestValidForDuration": {
      "seconds": VALID_FOR_DURATION
    }
  },
  "scheduling": {
    "provisioningModel": "FLEX_START",
    "instanceTerminationAction": "TERMINATION_ACTION",
    "maxRunDuration": {
      "seconds": RUN_DURATION
    },
    "onHostMaintenance": "TERMINATE"
  },
  "reservationAffinity": {
    "consumeReservationType": "NO_RESERVATION"
  }
}

更改下列內容:

  • PROJECT_ID:要在其中建立 VM 的專案 ID。

  • ZONE:要建立 VM 的區域。 如要確認機器類型在您要建立 VM 的區域是否可用,請參閱可用地區與區域一節。

  • VM_NAME:新 VM 的名稱。

  • MACHINE_TYPE:用於彈性啟動 VM 的機器類型。如果您指定 G2 或 N1 機器類型,請注意下列事項:

    • 對於 G2 機器類型,您可以選擇指定要用於圖形密集型工作負載的 NVIDIA RTX 虛擬工作站 (vWS)。如要這麼做,請在要求主體中加入 guestAccelerators 欄位,如下所示:

      "guestAccelerators": [
        {
          "acceleratorCount": VWS_ACCELERATOR_COUNT,
          "acceleratorType": "projects/PROJECT_ID/zones/ZONE/acceleratorTypes/nvidia-l4-vws"
        }
      ]
      

      VWS_ACCELERATOR_COUNT 替換為工作負載所需的 NVIDIA RTX vWS 數量。

    • 如果是 N1 機器類型,您必須指定要附加至 VM 的 GPU 數量和類型。否則 VM 建立作業會失敗。如要將 GPU 附加至 N1 VM,請在要求主體中加入 guestAccelerators 欄位,如下所示:

      "guestAccelerators": [
        {
          "acceleratorCount": ACCELERATOR_COUNT,
          "acceleratorType": "projects/PROJECT_ID/zones/ZONE/acceleratorTypes/ACCELERATOR_TYPE"
        }
      ]
      

      更改下列內容:

  • IMAGE_PROJECT:包含圖片的圖片專案,例如 debian-cloud。如要進一步瞭解支援的映像檔專案,請參閱「公開映像檔」。

  • IMAGE:指定下列其中一項:

    • 特定版本的 OS 映像檔,例如 debian-12-bookworm-v20240617

    • 映像檔系列,格式必須為 family/IMAGE_FAMILY。這個值會指定使用未淘汰的最新 OS 映像檔。舉例來說,如果您指定 family/debian-12,系統會使用 Debian 12 映像檔系列的最新版本。如要進一步瞭解如何使用映像檔系列,請參閱「映像檔系列最佳做法」。

  • VALID_FOR_DURATION:等待 VM 佈建的時間上限 (以秒為單位)。根據工作負載的區域需求,建議您指定下列其中一個時間長度,以提高 VM 建立要求成功的機率:

    • 如果工作負載要求您在特定可用區中建立 VM,請指定 90 秒 (90) 到兩小時 (7200) 的時間長度。時間越長,取得資源的機率就越高。

    • 如果 VM 可以在區域內的任何區域執行,請指定零秒的持續時間 (0)。這個值表示 Compute Engine 只會在資源可立即使用時分配資源。如果建立要求因資源不足而失敗,請在不同區域重試要求。

  • TERMINATION_ACTION:是否要在 VM 執行時間結束時停止或刪除 VM。指定下列其中一個值:

    • 如要停止 VM:STOP

    • 如要刪除 VM,請執行 DELETE

  • RUN_DURATION:VM 執行時間上限 (以秒為單位),超過這個時間後,Compute Engine 就會刪除 VM。這個值必須介於 600 秒 (10 分鐘) 和 604,800 秒 (七天) 之間。

後續步驟

歡迎試用

如果您未曾使用過 Google Cloud,歡迎建立帳戶,親自體驗實際使用 Compute Engine 的成效。新客戶可以獲得價值 $300 美元的免費抵免額,可用於執行、測試及部署工作負載。

免費試用 Compute Engine