建立彈性啟動 VM

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

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

事前準備

  • 如要進一步瞭解如何在 VM 中使用加速器最佳化機型 (A4X Max 或 A4X 除外),請參閱建立附加 GPU 的執行個體總覽
  • 如果尚未設定驗證,請先完成設定。 驗證可確認您的身分,以便存取 Google Cloud 服務和 API。如要從本機開發環境執行程式碼或範例,請選取下列其中一個選項,向 Compute Engine 進行驗證:

    選取這個頁面上的分頁,瞭解如何使用範例:

    控制台

    使用 Google Cloud 控制台存取 Google Cloud 服務和 API 時,無須設定驗證。

    gcloud

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

      gcloud init

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

  • 設定預設地區和區域
  • REST

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

      安裝 Google Cloud CLI。

      若您採用的是外部識別資訊提供者 (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

如要建立使用 A2、G4、G2 或 N1 以外機型的彈性啟動型 VM,請參閱下列說明:

如要建立 A2 或 G2 彈性啟動型 VM,並指定密集配置政策,以盡量減少網路延遲,請使用 gcloud CLI 或 REST API。否則,請選取下列其中一個選項:

控制台

  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」

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

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

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

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

        2. 在「Series」(系列) 欄,選取「H4D」

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

    1. 在「佈建模型」部分,從「VM 佈建模型」清單中選取「彈性啟動」

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

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

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

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

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

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

      • 如要停止 VM,請選取「停止」

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

gcloud

如要建立 A2、G4、G2 或 N1 彈性啟動型 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 的機型。如果您指定 G4、G2 或 N1 機器類型,請注意下列事項:

    • 如果是 G4 或 G2 機型,您可以選擇指定NVIDIA RTX 虛擬工作站 (vWS),用於處理大量圖形的工作負載。如要這麼做,請在指令中加入 --accelerator 標記,如下所示:

      --accelerator=count=VWS_ACCELERATOR_COUNT,type=VWS_ACCELERATOR_TYPE
      

      更改下列內容:

      • VWS_ACCELERATOR_COUNT:工作負載所需的 NVIDIA RTX vWS 數量。這個數字必須與您要使用的 G4 或 G2 機型中附加的 GPU 數量相符。

      • VWS_ACCELERATOR_TYPE:要使用的 NVIDIA RTX vWS 加速器類型。請指定下列其中一個值:

        • G4 機型:nvidia-rtx-pro-6000-vws

        • G2 機型:nvidia-l4-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 天之間。

如要將密集配置政策套用至 A2 或 G2 彈性啟動型 VM,請在指令中加入 --resource-policies 旗標:

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 \
    --resource-policies=POLICY_NAME

POLICY_NAME 替換為現有密集配置政策的名稱。您只能在與放置政策相同的區域中建立彈性啟動型 VM。

REST

如要建立 A2、G4、G2 或 N1 彈性啟動型 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 的機型。如果您指定 G4、G2 或 N1 機型,請注意下列事項:

    • 如果是 G4 或 G2 機型,您可以選擇指定NVIDIA RTX 虛擬工作站 (vWS),用於處理大量圖形的工作負載。如要這麼做,請在要求主體中加入 guestAccelerators 欄位,如下所示:

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

      更改下列內容:

      • VWS_ACCELERATOR_COUNT:工作負載所需的 NVIDIA RTX vWS 數量。這個數字必須與您要使用的 G4 或 G2 機型中附加的 GPU 數量相符。

      • VWS_ACCELERATOR_TYPE:要使用的 NVIDIA RTX vWS 加速器類型。指定下列其中一個值:

        • G2 機型:nvidia-l4-vws
        • G4 機型:nvidia-rtx-pro-6000-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 秒或七天) 之間。

如要將密集配置政策套用至 A2 或 G2 彈性啟動型 VM,請在要求中加入 resourcePolicies 欄位:

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"
  },
  "resourcePolicies": [
    "projects/PROJECT_ID/regions/REGION/resourcePolicies/POLICY_NAME"
  ]
}

更改下列內容:

  • REGION:密集配置政策所在的區域。您只能在與放置政策相同的區域中建立彈性啟動型 VM。

  • POLICY_NAME:密集配置政策的名稱。

後續步驟

歡迎試用

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

免付費試用 Compute Engine