本文說明如何在 MIG 中使用大量模式,同時建立所有需要的虛擬機器 (VM) 執行個體。一次建立所有執行個體,可確保 MIG 只在所有必要資源都可用時建立執行個體。
如要瞭解大量模式的運作方式,請參閱「關於在 MIG 中大量建立執行個體」。
建立執行個體範本
MIG 的大量模式僅支援指定「取決於預留項目」或「彈性啟動」佈建模式的執行個體範本。如要使用大量模式,請按照下列各節所述,使用其中一種佈建模型建立執行個體範本。如要進一步瞭解佈建模式,請參閱「Compute Engine 執行個體佈建模式」。
使用「取決於預留項目」佈建模式
如要建立執行個體範本,請選取下列任一選項:
控制台
前往 Cloud de Confiance 控制台的「Instance templates」(執行個體範本) 頁面。
按一下「建立執行個體範本」。「建立執行個體範本」頁面隨即開啟。
在「Name」(名稱) 欄位中,輸入執行個體範本的名稱。
在「位置」部分中,選取下列其中一個選項:
如要建立區域執行個體範本,請選取「區域 (建議)」,然後選取要建立範本的區域。
如要建立全域執行個體範本,請選取「Global」(全域)。
在「機器設定」部分,指定機型。
在「Provisioning model」(佈建模型) 部分,完成下列步驟:
展開「VM 佈建模式進階設定」。
在「On VM termination」(在 VM 終止時) 清單中,選取「Delete」(刪除)。
(選用) 如要變更預設開機磁碟類型或映像檔,請按一下「Boot disk」(開機磁碟) 部分中的「Change」(變更)。然後按照提示變更開機磁碟。
展開「Advanced options」(進階選項) 區段,然後執行下列操作:
展開「管理」部分。
在「Reservations」(預留項目) 部分,選取「Choose a reservation」(選取預留項目),然後點選「Choose reservation」(選取預留項目)。在隨即顯示的窗格中,按照提示選取要使用的預訂。
點選「建立」。
gcloud
如要建立執行個體範本,請使用 instance-templates create 指令,並設定下列旗標:
--instance-termination-action旗標設為DELETE。--maintenance-policy旗標設為TERMINATE。--provisioning-model旗標設為RESERVATION_BOUND。--reservation-affinity旗標設為specific。--reservation標記。
以下範例指令會建立區域執行個體範本。如要建立全域執行個體範本,請使用相同指令,但不要加上 --instance-template-region 旗標。
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 \
--provisioning-model=RESERVATION_BOUND \
--reservation-affinity=specific \
--reservation=RESERVATION_URL
更改下列內容:
INSTANCE_TEMPLATE_NAME:要建立的執行個體範本名稱。IMAGE_PROJECT:包含映像檔的映像檔專案,例如debian-cloud。如要進一步瞭解支援的映像檔專案,請參閱「公開映像檔」。IMAGE_FAMILY:映像檔系列。指定映像檔系列,即可使用未淘汰的最新作業系統映像檔。舉例來說,如果您指定debian-12,系統會使用 Debian 12 映像檔系列中的最新版本。如要進一步瞭解如何使用映像檔系列,請參閱「映像檔系列最佳做法」。REGION:要建立執行個體範本的區域。MACHINE_TYPE:要使用的預留項目中指定的機型。RESERVATION_URL:您要使用的日曆模式未來預留項目自動建立預留項目的網址。請指定下列其中一個值:如果專案中已有自動建立的預留項目:
RESERVATION_NAME.如果自動建立的預留項目位於其他專案:
projects/PROJECT_ID/reservations/RESERVATION_NAME。
REST
如要建立執行個體範本,請對下列其中一種方法發出 POST 要求:
如要建立地區執行個體範本:
regionInstanceTemplates.insert方法如要建立全域執行個體範本,請使用
instanceTemplates.insert方法。
在要求主體中加入下列欄位:
reservationAffinity.consumeReservationType欄位設為SPECIFIC_RESERVATION。reservationAffinity.key欄位設為compute.googleapis.com/reservation-name。reservationAffinity.values欄位設為自動建立的預留項目網址。scheduling.instanceTerminationAction欄位設為DELETE。scheduling.onHostMaintenance欄位設為TERMINATE。scheduling.provisioningModel欄位設為RESERVATION_BOUND。
舉例來說,如要建立地區執行個體範本,請提出下列要求:
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": "SPECIFIC_RESERVATION",
"key": "compute.googleapis.com/reservation-name",
"values": [
"RESERVATION_URL"
]
},
"scheduling": {
"instanceTerminationAction": "DELETE",
"onHostMaintenance": "TERMINATE",
"provisioningModel": "RESERVATION_BOUND"
}
}
}
更改下列內容:
PROJECT_ID:要在其中建立執行個體範本的專案 ID。REGION:要建立執行個體範本的區域。INSTANCE_TEMPLATE_NAME:要建立的執行個體範本名稱。IMAGE_PROJECT:包含映像檔的映像檔專案,例如debian-cloud。如要進一步瞭解支援的映像檔專案,請參閱「公開映像檔」。IMAGE:指定下列其中一項:MACHINE_TYPE:要使用的預留項目中指定的機型。RESERVATION_URL:您要使用的日曆模式未來預留項目自動建立預留項目的網址。請指定下列其中一個值:如果專案中已有系統自動建立的預留項目:
RESERVATION_NAME如果自動建立的預留項目位於其他專案:
projects/PROJECT_ID/reservations/RESERVATION_NAME
如要進一步瞭解如何建立執行個體範本,請參閱建立執行個體範本。
使用彈性啟動佈建模式
如要建立執行個體範本,請選取下列任一選項:
控制台
前往 Cloud de Confiance 控制台的「Instance templates」(執行個體範本) 頁面。
按一下「建立執行個體範本」。「建立執行個體範本」頁面隨即開啟。
在「Name」(名稱) 欄位中,輸入執行個體範本的名稱。
在「位置」部分中,選取下列其中一個選項:
如要建立區域執行個體範本,請選取「區域 (建議)」,然後選取要建立範本的區域。
如要建立全域執行個體範本,請選取「Global」(全域)。
在「機器設定」部分,指定機型。
在「Provisioning model」(佈建模型) 部分,完成下列步驟:
在「VM 佈建模型」欄位中,選取「彈性啟動」。
展開「VM 佈建模式進階設定」。
選取「設定 VM 的時間限制」核取方塊。
如要為使用執行個體範本建立的 VM 設定執行時間長度,請在「Enter number of hours」(輸入時數) 欄位中輸入時數。這個值必須介於 36 秒 (
0.01) 和七天 (168) 之間。
(選用) 如要變更預設開機磁碟類型或映像檔,請按一下「Boot disk」(開機磁碟) 部分中的「Change」(變更)。然後按照提示變更開機磁碟。
點選「建立」。
gcloud
如要建立執行個體範本,請使用 instance-templates create 指令,並設定下列旗標:
--instance-termination-action旗標設為DELETE。--maintenance-policy旗標設為TERMINATE。--max-run-duration標記。--provisioning-model旗標設為FLEX_START。--reservation-affinity旗標設為none。
以下範例指令會建立區域執行個體範本。如要建立全域執行個體範本,請使用相同指令,但不要加上 --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:映像檔系列。指定映像檔系列,即可使用未淘汰的最新作業系統映像檔。舉例來說,如果您指定debian-12,系統會使用 Debian 12 映像檔系列中的最新版本。如要進一步瞭解如何使用映像檔系列,請參閱「映像檔系列最佳做法」。REGION:要建立執行個體範本的區域。MACHINE_TYPE:用於彈性啟動型 VM 的機型。如果您指定 N1 機型,則必須加入--accelerator旗標,定義要連接至 VM 的 GPU 數量和類型。RUN_DURATION:要求的 VM 執行時間長度。您必須將值格式化為天數、時數、分鐘數或秒數,並分別加上d、h、m和s。舉例來說,您可以指定30m代表 30 分鐘,或指定1d2h3m4s代表 1 天 2 小時 3 分 4 秒。值必須介於 10 分鐘至 7 天之間。
REST
如要建立執行個體範本,請對下列其中一種方法發出 POST 要求:
如要建立地區執行個體範本:
regionInstanceTemplates.insert方法如要建立全域執行個體範本,請使用
instanceTemplates.insert方法。
在要求主體中加入下列欄位:
reservationAffinity.consumeReservationType欄位設為NO_RESERVATION。scheduling.instanceTerminationAction欄位設為DELETE。scheduling.maxRunDuration欄位。scheduling.onHostMaintenance欄位設為TERMINATE。scheduling.provisioningModel欄位設為FLEX_START。
下列範例要求會建立區域執行個體範本:
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:用於 VM 的機型。如果您指定 N1 機型,則必須加入guestAccelerators欄位,定義要附加至 VM 的 GPU 數量和類型。RUN_DURATION:要求的 VM 執行時間長度 (以秒為單位)。值必須介於600(600 秒,即 10 分鐘) 和604800(604,800 秒,即 7 天) 之間。
如要進一步瞭解如何建立執行個體範本,請參閱建立執行個體範本。
建立使用大量模式的 MIG
如要在 MIG 中大量建立執行個體,請在 MIG 的設定中將 targetSizePolicy.mode 欄位設為 BULK。使用這個大量模式時,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,請使用 gcloud compute instance-groups managed create 指令,並將 --target-size-policy-mode 旗標設為 bulk。
如果您使用彈性啟動佈建模式,則必須在 MIG 中關閉修復功能,方法是在下列指令中加入 --default-action-on-vm-failure=do-nothing 旗標。
- 如要建立可用區 MIG,請執行下列指令:
gcloud compute instance-groups managed create INSTANCE_GROUP_NAME \
--size=SIZE \
--target-size-policy-mode=bulk \
--template=INSTANCE_TEMPLATE_URL \
--zone=ZONE \
- 如要建立地區 MIG,請執行下列指令:
gcloud compute instance-groups managed create INSTANCE_GROUP_NAME \
--size=SIZE \
--target-size-policy-mode=bulk \
--template=INSTANCE_TEMPLATE_URL \
--zones=LIST_OF_ZONES \
更改下列內容:
INSTANCE_GROUP_NAME:MIG 的名稱。SIZE:MIG 中的執行個體數量。INSTANCE_TEMPLATE_URL:您要用於在 MIG 中建立執行個體的執行個體範本網址。網址可以包含執行個體範本的 ID 或名稱。請指定下列其中一個值:- 如果是區域執行個體範本:
projects/PROJECT_ID/regions/REGION/instanceTemplates/INSTANCE_TEMPLATE_ID - 如果是全域執行個體範本:
INSTANCE_TEMPLATE_ID
- 如果是區域執行個體範本:
ZONE:MIG 建立執行個體的可用區。LIST_OF_ZONES:以半形逗號分隔的區域清單,區域 MIG 會在這些區域建立執行個體。例如: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" }, "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" }, "versions": [ { "instanceTemplate": "INSTANCE_TEMPLATE_URL" } ] }
更改下列內容:
PROJECT_ID:專案 ID。ZONE:MIG 建立執行個體的可用區。REGION:MIG 建立執行個體的區域。INSTANCE_GROUP_NAME:MIG 的名稱。SIZE:MIG 中的執行個體數量。INSTANCE_TEMPLATE_URL:您要用於在 MIG 中建立執行個體的執行個體範本網址。網址可以包含執行個體範本的 ID 或名稱。請指定下列其中一個值:- 如果是區域執行個體範本:
projects/PROJECT_ID/regions/REGION/instanceTemplates/INSTANCE_TEMPLATE_ID - 如果是全域執行個體範本:
INSTANCE_TEMPLATE_ID
- 如果是區域執行個體範本:
新增或刪除例項
在採用大量模式的 MIG 中,您可以手動增加或減少 MIG 的目標大小,藉此新增或移除執行個體。
新增執行個體:當您將目標大小從零調高時,MIG 會以建立 MIG 時的方式新增執行個體。如果 MIG 中沒有執行個體,您也可以使用
createInstances方法建立具有特定名稱的執行個體。如要建立具有特定名稱的執行個體,請參閱在 MIG 中使用指定名稱建立執行個體一文。刪除執行個體:將目標大小縮減為零時,MIG 會刪除群組中的所有現有執行個體,並取消任何進行中的建立作業。如要移除執行個體,請將目標大小減少至
0。如要將大小減少至非零值,MIG 不得有正在進行的大量執行個體作業 (bulkInstanceOperation.inProgress必須為false)。
如要透過變更目標大小,在 MIG 中新增或移除執行個體,請參閱「手動設定 MIG 大小」。
後續步驟
- 瞭解如何查看或取消在 MIG 中大量建立執行個體。
- 瞭解如何使用代管型執行個體。
- 查看 MIG 和代管執行個體的相關資訊