本文說明如何建立代管執行個體群組 (MIG),一次新增多個 GPU 虛擬機器 (VM) 執行個體。
MIG 會使用目標大小政策的大量模式,一次新增所有 VM。此外,這項功能也採用彈性啟動佈建模式,可提高資源取得率。如要進一步瞭解彈性啟動佈建模式,請參閱「關於佈建模式」。
如要在 MIG 中一次新增多個 GPU VM,也可以建立規模調整要求。如要判斷大量模式或調整大小要求是否更適合您的工作負載,請參閱「大量模式與調整大小要求比較」。
如果工作負載不需要 MIG 一次建立所有 VM,但您仍想提高資源取得率,請使用彈性啟動佈建模式,如「建立含彈性啟動 VM 的 MIG」一文所述。
事前準備
- 如要確保有足夠的 GPU 配額供要求使用的資源使用,請查看 GPU 配額。
- 如要瞭解配額用量,請參閱「GPU VM 和先占分配配額」。
-
如果尚未設定驗證,請先完成設定。
驗證可確認您的身分,以便存取 Google Cloud 服務和 API。如要從本機開發環境執行程式碼或範例,請選取下列其中一個選項,向 Compute Engine 進行驗證:
選取這個頁面上的分頁,瞭解您打算如何使用範例:
控制台
使用 Google Cloud 控制台存取 Google Cloud 服務和 API 時,無須設定驗證。
gcloud
-
安裝 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 進行驗證」。
限制
限制如下:
一次建立 MIG 並新增 GPU VM
如要一次建立所有 GPU VM,請按照下列步驟操作:
建立執行個體範本,這是建立 MIG 的必要條件。MIG 隨後會使用這個範本,在群組中建立每個 VM。在範本中,指定彈性啟動佈建模式的設定。
如要進一步瞭解執行個體範本,請參閱「關於執行個體範本」。
建立 MIG,大量佈建 VM。 建立 MIG 時,請將目標大小政策模式設為
BULK,在 MIG 中啟用大量佈建功能。在BULK模式中,MIG 會嘗試一次建立所有 VM,以達到您設定的目標大小。
建立執行個體範本
建立指定 GPU 機器系列的執行個體範本。然後使用範本建立 MIG。
注意:如要執行資料科學或機器學習工作負載,建議您建立執行個體範本時使用深度學習 VM 映像檔。深度學習 VM 映像檔是一系列預先封裝的 VM 映像檔,隨附機器學習架構和基本工具。如要進一步瞭解這些映像檔,請參閱深層學習 VM 映像檔說明文件中的「選擇映像檔」。
控制台
前往「Instance templates」(執行個體範本) 頁面。
按一下「建立執行個體範本」。「建立執行個體範本」頁面隨即開啟。
在「Name」(名稱) 欄位中,輸入執行個體範本的名稱。
在「Machine configuration」(機器設定) 部分,執行下列操作:
按一下「GPU」分頁標籤。
在「GPU type」(GPU 類型) 清單中,選取 GPU 類型。
在「Number of GPUs」(GPU 數量) 清單中,選取 GPU 數量。
在「Machine type」(機型) 部分中,選取機型。
在「Provisioning model」(佈建模型) 部分,執行下列操作:
在「VM provisioning model」(VM 佈建模型) 清單中,選取「Flex-start」(彈性啟動)。
如要為透過執行個體範本建立的 VM 設定執行時間,請在「Enter number of hours」(輸入時數) 欄位中輸入時數。值必須介於一小時 (
1) 和七天 (168) 之間。
(選用) 如要變更預設開機磁碟類型或映像檔,請按一下「Boot disk」(開機磁碟) 部分中的「Change」(變更)。然後按照提示變更開機磁碟。
點選「建立」。
gcloud
使用 instance-templates create 指令建立執行個體範本:
gcloud compute instance-templates create INSTANCE_TEMPLATE_NAME \
--image-project=IMAGE_PROJECT \
--image-family=IMAGE_FAMILY \
--instance-termination-action=DELETE \
--instance-template-region=REGION \
--machine-type=MACHINE_TYPE \
--maintenance-policy=TERMINATE \
--max-run-duration=RUN_DURATION \
--provisioning-model=FLEX_START \
--reservation-affinity=none
更改下列內容:
INSTANCE_TEMPLATE_NAME:執行個體範本的名稱。IMAGE_PROJECT:包含圖片的圖片專案,例如debian-cloud。如要進一步瞭解支援的映像檔專案,請參閱「公開映像檔」。IMAGE_FAMILY:映像檔系列。這會指定最新的非已淘汰 OS 映像檔。舉例來說,如果您指定debian-12,系統會使用 Debian 12 映像檔系列中的最新版本。如要進一步瞭解如何使用映像檔系列,請參閱「映像檔系列最佳做法」。REGION:要建立執行個體範本的區域。MACHINE_TYPE:GPU 機型。如果您指定 N1 機型,請加入--accelerator旗標,指定要附加至 VM 的 GPU 數量和類型。RUN_DURATION:您希望要求的 VM 執行多久。您必須將值格式化為天數、時數、分鐘數或秒數,並分別加上d、h、m或s。舉例來說,您可以指定30m(30 分鐘),或是1d2h3m4s(1 天 2 小時 3 分鐘 4 秒)。值必須介於 10 分鐘至 7 天之間。
REST
對 instanceTemplates.insert 方法發出 POST 要求,建立執行個體範本:
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceTemplates
{
"name": "INSTANCE_TEMPLATE_NAME",
"properties": {
"disks": [
{
"boot": true,
"initializeParams": {
"sourceImage": "projects/IMAGE_PROJECT/global/images/IMAGE
}
}
],
"machineType": "MACHINE_TYPE",
"networkInterfaces": [
{
"network": "global/networks/default"
}
],
"reservationAffinity": {
"consumeReservationType": "NO_RESERVATION"
},
"scheduling": {
"instanceTerminationAction": "DELETE",
"maxRunDuration": {
"seconds": RUN_DURATION
},
"onHostMaintenance": "TERMINATE",
"provisioningModel": "FLEX_START"
}
}
}
更改下列內容:
PROJECT_ID:要在其中建立執行個體範本的專案 ID。REGION:要建立執行個體範本的區域。INSTANCE_TEMPLATE_NAME:執行個體範本的名稱。IMAGE_PROJECT:包含圖片的圖片專案,例如debian-cloud。如要進一步瞭解支援的映像檔專案,請參閱「公開映像檔」。IMAGE:指定下列其中一項:MACHINE_TYPE:GPU 機型。如果您指定 N1 機型,請加入guestAccelerators欄位,指定要附加至 VM 的 GPU 數量和類型。RUN_DURATION:您希望要求的 VM 在 MIG 自動刪除前執行的時間長度 (以秒為單位)。值必須介於600(600 秒,即 10 分鐘) 和604800(604,800 秒,即 7 天) 之間。
建立執行個體範本後,您可以查看範本,瞭解其 ID 並檢查執行個體屬性。
一次建立 MIG 並新增 GPU VM
請按照本節說明建立 MIG。在 MIG 中啟用大量佈建時,必須關閉修復功能。
控制台
前往「Instance groups」(執行個體群組) 頁面。
按一下「建立執行個體群組」。「建立執行個體群組」頁面隨即開啟。
在「Name」(名稱) 欄位中,輸入 MIG 的名稱。
選取執行個體範本前,請務必關閉修復功能,並依下列方式設定位置:
- 如要關閉修復功能,請按照下列步驟操作:
- 在「VM instance lifecycle」(VM 執行個體生命週期) 區段中,清除「Allow repair of VMs in an alternate zone」(允許在替代可用區修復 VM) 核取方塊。
- 在「Default action on failure」(失敗時的預設動作) 清單中,選取「No action」(不採取任何動作)。
- 如要設定「位置」部分,請按照下列步驟操作:
- 如要建立可用區 MIG,請選取「單一可用區」。
- 如要建立區域性 MIG,請選取「多個可用區」。在「目標分配型態」中,選取「任何單一可用區」。在隨即顯示的對話方塊中,選取「停用執行個體重新分配功能」。
- 如要關閉修復功能,請按照下列步驟操作:
返回「Instance template」(執行個體範本) 欄位。在「Instance template」(執行個體範本) 清單中,選取您在上一個部分中建立的執行個體範本。
在「Number of instances」(執行個體數) 欄位中,指定要一次建立的執行個體數量。
選取「透過大量目標大小政策一次取得所有 VM」核取方塊。
點選「建立」。
gcloud
如要建立具有大量佈建功能的 MIG,請使用 instance-groups managed create 指令。
如要建立可用區 MIG,請執行下列指令:
gcloud compute instance-groups managed create INSTANCE_GROUP_NAME \ --default-action-on-vm-failure=do-nothing \ --size=SIZE \ --target-size-policy-mode=bulk \ --template=INSTANCE_TEMPLATE_URL \ --zone=ZONE \如要建立地區 MIG,請執行下列指令:
gcloud compute instance-groups managed create INSTANCE_GROUP_NAME \ --default-action-on-vm-failure=do-nothing \ --size=SIZE \ --target-size-policy-mode=bulk \ --template=INSTANCE_TEMPLATE_URL \ --zones=LIST_OF_ZONES \
更改下列內容:
INSTANCE_GROUP_NAME:MIG 的名稱。SIZE:MIG 中的 VM 數量。INSTANCE_TEMPLATE_URL:您要用於在 MIG 中建立執行個體的執行個體範本網址。網址可以包含執行個體範本的 ID 或名稱。請指定下列其中一個值:- 如果是區域執行個體範本:
projects/PROJECT_ID/regions/REGION/instanceTemplates/INSTANCE_TEMPLATE_ID - 如果是全域執行個體範本:
INSTANCE_TEMPLATE_ID
- 如果是區域執行個體範本:
ZONE:MIG 建立 VM 的可用區。LIST_OF_ZONES:以半形逗號分隔的可用區清單,區域 MIG 會在這些可用區中建立 VM。例如:us-central1-a, us-central1-b, us-central1-c。
REST
如要建立啟用大量建立功能的 MIG,請按照下列方式提出 POST 要求。在要求主體中,將 targetSizePolicy.mode 欄位設為 bulk。
如果您使用的執行個體範本指定了彈性啟動佈建模式,則必須在下列要求中加入 "instanceLifecyclePolicy": {"defaultActionOnFailure": "DO_NOTHING"} 欄位,關閉 MIG 中的修復功能。
如要建立區域 MIG,請向
instanceGroupManagers.insert方法發出POST要求。POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers { "name": "INSTANCE_GROUP_NAME", "targetSize": SIZE, "targetSizePolicy": { "mode": "bulk" }, "instanceLifecyclePolicy": { "defaultActionOnFailure": "DO_NOTHING" }, "versions": [ { "instanceTemplate": "INSTANCE_TEMPLATE_URL" } ] }如要建立區域 MIG,請向
regionInstanceGroupManagers.insert方法發出POST要求。POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceGroupManagers { "name": "INSTANCE_GROUP_NAME", "targetSize": SIZE, "targetSizePolicy": { "mode": "bulk" }, "instanceLifecyclePolicy": { "defaultActionOnFailure": "DO_NOTHING" }, "versions": [ { "instanceTemplate": "INSTANCE_TEMPLATE_URL" } ] }
更改下列內容:
PROJECT_ID:專案 ID。ZONE:MIG 建立 VM 的可用區。REGION:MIG 建立 VM 的區域。INSTANCE_GROUP_NAME:MIG 的名稱。SIZE:MIG 中的 VM 數量。INSTANCE_TEMPLATE_URL:您要用於在 MIG 中建立執行個體的執行個體範本網址。網址可以包含執行個體範本的 ID 或名稱。請指定下列其中一個值:- 如果是區域執行個體範本:
projects/PROJECT_ID/regions/REGION/instanceTemplates/INSTANCE_TEMPLATE_ID - 如果是全域執行個體範本:
INSTANCE_TEMPLATE_ID
- 如果是區域執行個體範本:
後續步驟
- 瞭解如何查看 MIG 和代管 VM 的相關資訊。
- 瞭解如何查看 VM 和 GPU 的實際與預估用量。