建立彈性啟動 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 驗證說明文件中的「使用 REST 進行驗證」。

必要的角色

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

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

所需權限

如要建立彈性啟動 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. 在「佈建模式」部分,從「VM 佈建模式」清單中選取「彈性啟動」

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

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

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

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

    4. 在「On VM termination」(在 VM 終止時) 欄位中,選取在彈性啟動 VM 執行時間結束時,要停止還是刪除該 VM:

      • 如要刪除 VM,請選取「刪除」

      • 如要停止 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:等待佈建所要求資源的時間上限。您必須將值格式化為天數、時數、分鐘數或秒數,後接 dhms。舉例來說,您可以指定 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:VM 執行的最長時間,之後 Compute Engine 會自動停止或刪除 VM。您必須將值格式化為天數、時數、分鐘數或秒數,並分別加上 dhms。值必須介於 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 (600 秒或 10 分鐘) 和 604800 (604,800 秒或七天) 之間。

後續步驟

歡迎試用

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

免費試用 Compute Engine