本文說明如何建立使用彈性啟動虛擬機器 (VM) 執行個體的代管執行個體群組 (MIG)。彈性啟動 VM 最多可不間斷執行七天,並以折扣價取得 GPU 等高需求資源。這些功能讓彈性啟動 VM 成為執行短期工作負載 (例如模型微調和批次推論工作負載) 的經濟實惠解決方案。
本文的步驟說明如何建立 MIG,在資源可用時建立個別的彈性啟動 VM。因此,MIG 可能一開始只會建立部分要求的 VM,然後在容量允許的情況下,稍後再新增其餘 VM。如要一次在 MIG 中建立多個彈性啟動 VM,請參閱「關於 MIG 規模調整要求」。
如要瞭解其他建立 MIG 的方法,請參閱建立 MIG 的基本情境。
事前準備
- 確認您有足夠的配額,可供要求使用的資源。詳情請參閱配置配額。
-
如果尚未設定驗證,請先完成設定。
驗證可確認您的身分,以便存取 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 進行驗證」。
必要的角色
如要取得建立使用彈性啟動 VM 的 MIG 所需的權限,請要求管理員授予您專案的 Compute 執行個體管理員 (v1) (roles/compute.instanceAdmin.v1) IAM 角色。如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和組織的存取權」。
這個預先定義的角色具備建立使用彈性啟動 VM 的 MIG 所需的權限。如要查看確切的必要權限,請展開「Required permissions」(必要權限) 部分:
所需權限
如要建立使用彈性啟動 VM 的 MIG,必須具備下列權限:
-
如要建立執行個體範本:
compute.instanceTemplates.create在專案上 -
如要建立 MIG,請在專案上按一下
compute.instanceGroupManagers.create。
建立使用彈性啟動 VM 的 MIG
如要建立使用彈性啟動 VM 的 MIG,請完成下列步驟:
建立執行個體範本,並設定為建立彈性啟動 VM
您必須建立執行個體範本,並設定為建立彈性啟動 VM,如本節所述。建立範本後,您可以使用該範本建立 MIG。
如要建立設定為建立彈性啟動 VM 的執行個體範本,請選取下列任一選項:
控制台
前往 Google Cloud 控制台的「Instance templates」(執行個體範本) 頁面。
按一下「建立執行個體範本」。「建立執行個體範本」頁面隨即顯示。
在「Name」(名稱) 欄位中,輸入執行個體範本的名稱。
在「位置」部分,選取要建立的執行個體範本類型:
如果是區域執行個體範本,請選取「區域」,然後選取要建立範本的區域。根據您希望「彈性啟動」VM 使用的機型,指定支援的區域。
如要使用全域執行個體範本,請選取「Global」(全域)。
在「機器設定」專區中,選取彈性啟動 VM 支援的機器系列。
在「Provisioning model」(佈建模型) 部分,執行下列操作:
在「VM provisioning model」(VM 佈建模型) 清單中,選取「Flex-start」(彈性啟動)。
如要為透過執行個體範本建立的 VM 設定執行時間長度,請在「Enter number of hours」(輸入時數) 欄位中,輸入 VM 的執行時數。值必須介於一小時 (
1) 和七天 (168) 之間。VM 達到執行時間上限時,Compute Engine 會根據每個 VM 的建立時間,個別刪除 VM。
(選用) 如要變更預設開機磁碟類型或映像檔,請按一下「Boot disk」(開機磁碟) 部分中的「Change」(變更)。然後按照提示變更開機磁碟。
點選「建立」。
gcloud
如要建立設定為建立彈性啟動 VM 的執行個體範本,請使用 gcloud compute instance-templates create 指令。
下列指令會建立區域執行個體範本。如要建立全域執行個體範本,請使用相同指令,但不要加上 --instance-template-region 旗標。
gcloud compute instance-templates create INSTANCE_TEMPLATE_NAME \
--image-project=IMAGE_PROJECT \
--image-family=IMAGE_FAMILY \
--instance-template-region=REGION \
--instance-termination-action=DELETE \
--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:要建立執行個體範本的區域。根據您希望彈性啟動 VM 使用的機型,指定支援的區域。MACHINE_TYPE:用於彈性啟動 VM 的 GPU 機型或 H4D 機型。如果您指定 N1 機型,則必須加入--accelerator旗標,定義要附加至 VM 的 GPU 數量和類型。RUN_DURATION:要求的 VM 執行時間長度。VM 達到執行時間上限時,Compute Engine 會根據每個 VM 的建立時間,個別刪除 VM。你必須將執行時間長度格式設為天數、小時、分鐘或秒數,並分別加上d、h、m和s。例如,指定30m代表 30 分鐘,或指定1d2h3m4s代表 1 天 2 小時 3 分 4 秒。值必須介於 10 分鐘至 7 天之間。
REST
如要建立設定為建立彈性啟動 VM 的執行個體範本,請發出下列任一 POST 要求:
如要建立地區執行個體範本:
regionInstanceTemplates.insert方法如要建立全域執行個體範本,請使用
instanceTemplates.insert方法。
舉例來說,如要建立地區執行個體範本,請提出下列要求:
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:要建立執行個體範本的區域。根據您希望彈性啟動 VM 使用的機型,指定支援的區域。INSTANCE_TEMPLATE_NAME:執行個體範本的名稱。IMAGE_PROJECT:包含映像檔的映像檔專案,例如debian-cloud。如要進一步瞭解支援的映像檔專案,請參閱「公開映像檔」。IMAGE:指定下列其中一項:MACHINE_TYPE:用於 VM 的 GPU 機型。如果您指定 N1 機型,則必須加入guestAccelerators欄位,定義要附加至 VM 的 GPU 數量和類型。RUN_DURATION:要求的 VM 執行時間長度 (以秒為單位)。VM 達到執行時間上限時,Compute Engine 會根據每個 VM 的建立時間,個別刪除 VM。執行時間長度必須介於600(600 秒,即 10 分鐘) 和604800(604,800 秒,即 7 天) 之間。
建立執行個體範本後,您可以查看範本的詳細資料,瞭解範本的屬性。
建立區域或可用區 MIG
如要建立區域性或可用區 MIG,請參閱本節說明。您不得設定自動調度資源,且必須關閉修復功能。如果要求的資源無法使用,Compute Engine 會持續嘗試分配資源,直到要求成功、您減少 MIG 中的 VM 數量,或刪除 MIG 為止。
如要建立區域或可用區 MIG,請選取下列任一選項:
控制台
前往 Google Cloud 控制台的「Instance groups」(執行個體群組) 頁面。
按一下「建立執行個體群組」。「建立執行個體群組」頁面隨即顯示。
在「Name」(名稱) 欄位中,輸入 MIG 的名稱。
在「Instance template」(執行個體範本) 清單中,選取您在上一個章節中建立的執行個體範本。
在「Number of instances」(執行個體數量) 欄位中,輸入要在 MIG 中建立的彈性啟動 VM 數量。如果工作負載需要特定 VM 名稱,請輸入
0,不要建立任何 VM。建立 MIG 後,將具有特定名稱的 VM 新增至 MIG。在「Location」(位置) 部分中,指定要建立區域或地區 MIG,方法如下:
如要建立可用區 MIG,請選取「單一可用區」。如要建立區域性 MIG,請選取「Multiple zones」(多個可用區)。
選取 MIG 的「Region」(區域) 和「Zone」(可用區)。
如要建立區域 MIG,請執行下列步驟:
在「目標分配型態」欄位中,選取「任何單一可用區」。
在隨即顯示的對話方塊中,按一下「停用執行個體重新分配」。
如要刪除自動調度資源設定,請在「Autoscaling」(自動調度資源) 部分執行下列操作:
按一下「設定自動調度資源」。
在「自動調度模式」清單中,按一下「刪除自動調度資源設定」。
在確認對話方塊中點按「刪除」。
如要關閉修復功能,請在「Action on failure」部分,從「Default action on failure」清單中選取「No action」。
點選「建立」。
gcloud
如要建立 MIG,請使用 gcloud compute instance-groups managed create 指令。
根據要建立的 MIG 類型,在指令中加入下列旗標:
如要建立可用區 MIG,請加入
--zone旗標:gcloud compute instance-groups managed create INSTANCE_GROUP_NAME \ --default-action-on-vm-failure=do-nothing \ --size=SIZE \ --template=INSTANCE_TEMPLATE_URL \ --zone=ZONE如要建立區域 MIG,請加入
--region和--target-distribution-shape旗標:gcloud compute instance-groups managed create INSTANCE_GROUP_NAME \ --default-action-on-vm-failure=do-nothing \ --size=SIZE \ --template=INSTANCE_TEMPLATE_URL \ --region=REGION \ --target-distribution-shape=SHAPE
更改下列內容:
INSTANCE_GROUP_NAME:MIG 的名稱。INSTANCE_TEMPLATE_URL:您在上一個章節中建立的執行個體範本網址。網址可以包含執行個體範本的 ID 或名稱。請指定下列其中一個值:如果是區域性執行個體範本:
projects/PROJECT_ID/regions/REGION/instanceTemplates/INSTANCE_TEMPLATE_ID全域執行個體範本:
INSTANCE_TEMPLATE_ID
SIZE:要在 MIG 中建立的彈性啟動型 VM 數量。如果工作負載需要特定 VM 名稱,請指定0,這樣就不會建立任何 VM。建立 MIG 後,將具有特定名稱的 VM 新增至 MIG。ZONE:要建立可用區 MIG 的可用區。如果您使用區域執行個體範本建立 MIG,則必須指定與範本位於相同區域的可用區。REGION:要建立區域 MIG 的區域。如果您使用區域執行個體範本建立 MIG,則必須指定與範本區域相同的區域。SHAPE:MIG 如何在區域 MIG 的各個可用區中分配彈性啟動 VM。指定下列其中一個值:如要根據可用性在多個可用區中建立 VM,請按照下列步驟操作:
ANY如要根據可用性在單一區域中建立 VM,請按照下列步驟操作:
ANY_SINGLE_ZONE
詳情請參閱「區域性 MIG 目標分配型態」。
REST
如要建立 MIG,請對下列其中一種方法發出 POST 要求:
如要建立可用區 MIG,請向
instanceGroupManagers.insert方法發出下列要求:POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers { "name": "INSTANCE_GROUP_NAME", "versions": [ { "instanceTemplate": "INSTANCE_TEMPLATE_URL" } ], "instanceLifecyclePolicy": { "defaultActionOnFailure": "DO_NOTHING" }, "targetSize": SIZE }如要建立區域 MIG,請向
regionInstanceGroupManagers.insert方法發出下列要求:POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceGroupManagers { "name": "INSTANCE_GROUP_NAME", "instanceTemplate": "INSTANCE_TEMPLATE_URL", "instanceLifecyclePolicy": { "defaultActionOnFailure": "DO_NOTHING" }, "targetSize": SIZE, "distributionPolicy": { "targetShape": "SHAPE" } }
更改下列內容:
PROJECT_ID:要在當中建立區域或可用區 MIG 的專案 ID。ZONE:要建立可用區 MIG 的可用區。如果您使用區域執行個體範本建立 MIG,則必須指定與範本位於相同區域的可用區。REGION:要建立區域 MIG 的區域。如果您使用區域執行個體範本建立 MIG,則必須指定與範本區域相同的區域。INSTANCE_GROUP_NAME:MIG 的名稱。INSTANCE_TEMPLATE_URL:您在上一個章節中建立的執行個體範本網址。網址可以包含執行個體範本的 ID 或名稱。請指定下列其中一個值:如果是區域性執行個體範本:
projects/PROJECT_ID/regions/REGION/instanceTemplates/INSTANCE_TEMPLATE_ID全域執行個體範本:
INSTANCE_TEMPLATE_ID
SIZE:要在 MIG 中建立的彈性啟動型 VM 數量。如果工作負載需要特定 VM 名稱,請指定0,這樣就不會建立任何 VM。建立 MIG 後,將具有特定名稱的 VM 新增至 MIG。SHAPE:MIG 如何在區域 MIG 的各個可用區中分配彈性啟動 VM。指定下列其中一個值:如要根據可用性在多個可用區中建立 VM,請按照下列步驟操作:
ANY如要根據可用性在單一區域中建立 VM,請按照下列步驟操作:
ANY_SINGLE_ZONE
詳情請參閱「區域性 MIG 目標分配型態」。
後續步驟
瞭解如何查看 MIG 和代管 VM 的相關資訊。
瞭解如何查看 VM 和 GPU 的實際與預估用量。