本文說明如何建立使用 Spot VM 的代管執行個體群組 (MIG)。
Spot VM 是虛擬機器 (VM) 執行個體,價格大幅折扣。不過,Compute Engine 隨時可以停止或刪除 Spot VM,以取回容量。使用 Spot VM 執行容錯工作負載 (例如批次處理作業或無狀態應用程式),可節省費用。
如要瞭解其他建立 MIG 的方法,請參閱建立 MIG 的基本情境。
事前準備
- 確認您有足夠的配額,可供要求使用的資源。詳情請參閱配置配額。
- 確認要在其中建立 Spot VM 的區域或可用區是否有資源。檢查資源可用性有助於降低建立 VM 時發生資源可用性錯誤的機率。如需操作說明,請參閱「查看 Spot VM 的可用性」。
-
如果尚未設定驗證,請先完成設定。
驗證可確認您的身分,以便存取 Cloud de Confiance by S3NS 服務和 API。如要從本機開發環境執行程式碼或範例,請選取下列其中一個選項,向 Compute Engine 進行驗證:
選取這個頁面上您打算如何使用範例的分頁:
控制台
使用 Cloud de Confiance 控制台存取 Cloud de Confiance by S3NS 服務和 API 時,無須設定驗證。
gcloud
-
安裝 Google Cloud CLI,然後 使用聯合身分登入 gcloud CLI。登入後,執行下列指令來初始化 Google Cloud CLI:
gcloud init
-
- 設定預設地區和區域。
REST
如要在本機開發環境中使用本頁的 REST API 範例,請使用您提供給 gcloud CLI 的憑證。
安裝 Google Cloud CLI,然後 使用聯合身分登入 gcloud CLI。
詳情請參閱 Cloud de Confiance 驗證說明文件中的「使用 REST 進行驗證」。
必要的角色
如要取得建立使用 Spot VM 的 MIG 所需的權限,請要求管理員授予您專案的 Compute 執行個體管理員 (v1) (roles/compute.instanceAdmin.v1) IAM 角色。如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和組織的存取權」。
這個預先定義的角色具備建立使用 Spot VM 的 MIG 所需的權限。如要查看確切的必要權限,請展開「Required permissions」(必要權限) 部分:
所需權限
如要建立使用 Spot VM 的 MIG,必須具備下列權限:
-
如要建立執行個體範本,請按照下列步驟操作:
compute.instanceTemplates.create在專案上 -
如要建立 MIG,請在專案上按一下
compute.instanceGroupManagers.create。
建立使用 Spot VM 的 MIG
如要建立使用 Spot VM 的 MIG,請完成下列步驟:
建立執行個體範本,並設定為建立 Spot VM
如要建立設定為建立 Spot VM 的執行個體範本,請選取下列任一選項:
控制台
前往 Cloud de Confiance 控制台的「Instance templates」(執行個體範本) 頁面。
按一下「建立執行個體範本」。「建立執行個體範本」頁面隨即顯示。
在「Name」(名稱) 欄位中,輸入執行個體範本的名稱。
在「位置」部分,選取要建立的執行個體範本類型:
如果是區域執行個體範本,請選取「區域」,然後選取要建立範本的區域。根據您希望 Spot VM 使用的機型,指定支援的區域。
如要使用全域執行個體範本,請選取「Global」(全域)。
在「機器設定」專區中,選取 Spot VM 支援的機器系列。
在「Provisioning model」(佈建模型) 部分,執行下列操作:
在「VM 佈建模型」清單中,選取「Spot」。
如要指定在搶占時停止或刪除 Spot VM,請在「On VM termination」(在 VM 終止時) 清單中,選取下列任一選項:
如要停止 Spot VM,請選取「停止」。
如要刪除 Spot VM,請選取「刪除」。
選用:如要變更預設開機磁碟類型或映像檔,請按一下「Boot disk」(開機磁碟) 部分中的「Change」(變更),然後按照提示變更開機磁碟。
點選「建立」。
gcloud
如要建立設定為建立 Spot 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=TERMINATION_ACTION \
--machine-type=MACHINE_TYPE \
--provisioning-model=SPOT
更改下列內容:
INSTANCE_TEMPLATE_NAME:要建立的執行個體範本名稱。IMAGE_PROJECT:包含映像檔的映像檔專案,例如debian-cloud。如要進一步瞭解支援的映像檔專案,請參閱「公開映像檔」。IMAGE_FAMILY:映像檔系列。這會指定最新的非淘汰 OS 映像檔。舉例來說,如果您指定debian-12,系統會使用 Debian 12 映像檔系列中的最新版本。如要進一步瞭解如何使用映像檔系列,請參閱映像檔系列最佳做法。REGION:要建立執行個體範本的區域。請根據 Spot VM 要使用的機型,指定支援的區域。TERMINATION_ACTION:Compute Engine 在先占時停止或刪除 Spot VM。您必須指定停止 (STOP) 或刪除 (DELETE) VM。MACHINE_TYPE:適用於 Spot VM 的支援機型。如果您指定 N1 機型,則必須加入--accelerator旗標,定義要連接至 VM 的 GPU 數量和類型。
REST
如要建立設定為建立 Spot 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"
}
],
"scheduling": {
"instanceTerminationAction": "TERMINATION_ACTION",
"provisioningModel": "SPOT"
}
}
}
更改下列內容:
PROJECT_ID:要在其中建立執行個體範本的專案 ID。REGION:要建立執行個體範本的區域。請根據 Spot VM 要使用的機型,指定支援的區域。INSTANCE_TEMPLATE_NAME:執行個體範本的名稱。IMAGE_PROJECT:包含映像檔的映像檔專案,例如debian-cloud。如要進一步瞭解支援的映像檔專案,請參閱「公開映像檔」。IMAGE:指定下列其中一項:MACHINE_TYPE:適用於 Spot VM 的支援機型。如果您指定 N1 機型,則必須加入guestAccelerators欄位,定義要連接至 VM 的 GPU 數量和類型。TERMINATION_ACTION:Compute Engine 在先占時停止或刪除 Spot VM。您必須指定停止 (STOP) 或刪除 (DELETE) VM。
建立執行個體範本後,您可以查看範本的詳細資料,瞭解範本的屬性。
建立區域或可用區 MIG
如要建立區域或可用區 MIG,請選取下列任一選項:
控制台
前往 Cloud de Confiance 控制台的「Instance groups」(執行個體群組) 頁面。
按一下「建立執行個體群組」,系統會開啟「建立執行個體群組」頁面。
在「Name」(名稱) 欄位中,輸入 MIG 的名稱。
在「Instance template」(執行個體範本) 清單中,選取您在上一個章節中建立的執行個體範本。
在「Number of instances」(執行個體數量) 欄位中,輸入要在 MIG 中建立的 Spot VM 數量。如果工作負載需要指定名稱的 VM,請輸入
0,略過這個階段的 VM 建立作業。建立 MIG 後,將具有特定名稱的 VM 新增至 MIG。在「Location」(位置) 部分中,指定要建立區域或地區 MIG,方法如下:
如要建立可用區 MIG,請選取「單一可用區」。如要建立區域性 MIG,請選取「Multiple zones」(多個可用區)。
選取 MIG 的「Region」(區域) 和「Zone」(可用區)。
點選「建立」。
gcloud
如要建立 MIG,請使用 gcloud compute instance-groups managed create 指令。
根據要建立的 MIG 類型,在指令中加入下列旗標:
如要建立可用區 MIG,請加入
--zone旗標:gcloud compute instance-groups managed create INSTANCE_GROUP_NAME \ --size=SIZE \ --template=INSTANCE_TEMPLATE_URL \ --zone=ZONE如要建立區域 MIG,請加入
--region旗標:gcloud compute instance-groups managed create INSTANCE_GROUP_NAME \ --size=SIZE \ --template=INSTANCE_TEMPLATE_URL \ --region=REGION
更改下列內容:
INSTANCE_GROUP_NAME:MIG 的名稱。INSTANCE_TEMPLATE_URL:您在前一節中建立的執行個體範本網址。網址可以包含執行個體範本的 ID 或名稱。請指定下列其中一個值:如果是區域性執行個體範本:
projects/PROJECT_ID/regions/REGION/instanceTemplates/INSTANCE_TEMPLATE_ID全域執行個體範本:
INSTANCE_TEMPLATE_ID
:要在 MIG 中建立的 Spot VM 數量。如果工作負載需要特定 VM 名稱,請指定
0,略過這個階段的 VM 建立作業。建立 MIG 後,請將具有特定名稱的 VM 新增至 MIG。SIZEZONE:要建立可用區 MIG 的可用區。如果您使用區域執行個體範本建立 MIG,則必須指定與範本位於相同區域的可用區。REGION:要建立區域 MIG 的區域。如果您使用區域執行個體範本建立 MIG,則必須指定與範本區域相同的區域。
REST
如要建立 MIG,請對下列其中一種方法發出 POST 要求:
如要建立區域 MIG,請向
instanceGroupManagers.insert方法發出POST要求:POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers { "name": "INSTANCE_GROUP_NAME", "versions": [ { "instanceTemplate": "INSTANCE_TEMPLATE_URL" } ], "targetSize": SIZE }如要建立區域 MIG,請向
regionInstanceGroupManagers.insert方法發出POST要求:POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceGroupManagers { "name": "INSTANCE_GROUP_NAME", "instanceTemplate": "INSTANCE_TEMPLATE_URL", "targetSize": SIZE }
更改下列內容:
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 中建立的 Spot VM 數量。如果工作負載需要特定 VM 名稱,請指定0,略過這個階段的 VM 建立作業。建立 MIG 後,將具有特定名稱的 VM 新增至 MIG。
建立 MIG 後,您可以查看 MIG 的詳細資料,瞭解其屬性。
後續步驟
進一步瞭解 Spot VM 最佳做法。
進一步瞭解如何修復 MIG 中的 VM,以確保高可用性。
進一步瞭解在 MIG 中自動調度 VM。
進一步瞭解有狀態的 MIG。