本文說明如何新增執行個體彈性,以便在 MIG 中設定多個機型。
您可以在建立 MIG 時,或透過編輯現有 MIG,新增執行個體彈性。如要增加彈性,請在 MIG 中設定執行個體彈性政策。這項政策會覆寫執行個體範本中指定的機型。每次 MIG 建立虛擬機器 (VM) 執行個體時,都會根據資源可用性,自動選取您在政策中列出的其中一種機器類型。您也可以為機器類型清單指派排名,表示偏好設定。
如要瞭解執行個體彈性在 MIG 中的運作方式,請參閱「關於執行個體彈性」。
事前準備
- 請確認您選擇的機器類型,在 MIG 所在區域受到支援。如要查看某個區域的機型,請參閱「可用的區域和可用區」。
- 如要在 MIG 中建立 Spot VM,請先查看資源可用性,再將 VM 新增至 MIG。檢查資源可用性,有助於降低發生資源可用性錯誤的機率。如需操作說明,請參閱「查看 Spot VM 的資源可用性」。
-
如果尚未設定驗證,請先完成設定。驗證程序會確認您的身分,以便授予 Google Cloud 服務和 API 的存取權。如要從本機開發環境執行程式碼或範例,您可以選取下列其中一個選項,向 Compute Engine 進行驗證:
請根據您打算如何使用本頁範例,選取對應的分頁標籤:
控制台
使用 Google Cloud 控制台存取 Google Cloud 服務和 API 時,不需要設定驗證機制。
gcloud
-
安裝 Google Cloud CLI。 安裝完成後,請執行下列指令,初始化 Google Cloud CLI:
gcloud init若您採用的是外部識別資訊提供者 (IdP),請先 使用聯合身分登入 gcloud CLI。
-
- 設定預設區域和可用區。
-
安裝 Google Cloud CLI。
-
若您採用的是外部識別資訊提供者 (IdP),請先 使用聯合身分登入 gcloud CLI。
-
如果您使用的是本機殼層,請為使用者帳戶建立本機驗證憑證:
gcloud auth application-default login
如果您使用的是 Cloud Shell,則不必執行這項操作。
如果系統傳回驗證錯誤,且您使用的是外部識別資訊提供者 (IdP),請確認您已 使用聯合身分登入 gcloud CLI。
Terraform
如要在本機開發環境中使用本頁的 Terraform 範例,請安裝並初始化 gcloud CLI,然後使用使用者憑證設定應用程式預設憑證。
詳情請參閱「 為本機開發環境設定驗證機制」。
REST
如要在本機開發環境中使用本頁的 REST API 範例,請使用您提供給 gcloud CLI 的憑證。
安裝 Google Cloud CLI。
若您採用的是外部識別資訊提供者 (IdP),請先 使用聯合身分登入 gcloud CLI。
詳情請參閱 Google Cloud 驗證說明文件中的「使用 REST 進行驗證」一節。
建立具備執行個體彈性的 MIG
建立 MIG 前,請先建立執行個體範本 (如果尚未建立)。接著,您可以建立具備執行個體彈性的 MIG,覆寫執行個體範本中指定的機器類型。
使用下列任一方式,建立具備執行個體彈性的 MIG:
建立具備多種機型的 MIG
控制台
前往 Google Cloud 控制台的「Instance groups」(執行個體群組) 頁面。
點選「建立執行個體群組」。
在「Name」(名稱) 欄位中,輸入 MIG 的名稱。
在「Instance template」(執行個體範本) 清單中,選取要用於 MIG 的執行個體範本。
您必須先完成下列操作,才能指定「Number of instances」(執行個體數量) 並新增「Instance selections」(執行個體選項):
前往頁面的「Location」(位置) 部分,並按照下列步驟設定位置:
選取「多可用區」。
在「Regions」(區域) 和「Zones」(可用區) 下拉式選單中,選取要在 MIG 中建立 VM 的區域和可用區。如果選取區域執行個體範本,系統預設會選取該範本的區域。
在「Target distribution shape」(目標分配型態) 欄位中,選取「Balanced」(平衡)、「Any」(任何) 或「Any single zone」(任何單一可用區)。
如果選取「Balanced」(平衡) 或「Any single zone」(任何單一可用區),請在開啟的對話方塊中按一下「Disable instance redistribution」(停用執行個體重新分配)。
如果選取「Any」(任何),請務必取消勾選「Allow instance redistribution」(允許重新分配執行個體) 核取方塊。
前往頁面的「Autoscaling」(自動調度資源) 部分,然後按照下列步驟刪除自動調度資源設定:
在「Autoscaling mode」(自動調度資源模式) 下拉式選單中,按一下「Delete autoscaling configuration」(刪除自動調度資源設定)。
在開啟的對話方塊中,按一下「刪除」。
向上捲動至「Number of instances」(執行個體數量) 欄位。
在「Number of instances」(執行個體數量) 欄位中,指定群組中所需的 VM 數量。
在「Instance selections」(執行個體選項) 部分,按一下「Add selections」(新增選項)。
「Instance selections」(執行個體選項) 視窗隨即開啟。
按一下「Add instance selection」(新增執行個體選項)。
在「New instance selection」(選取新執行個體) 部分,執行下列操作:
在「Name」(名稱) 欄位中,輸入執行個體選項的名稱。
在「Machine types」(機器類型) 區段中,按一下「Add machine type」(新增機器類型),選取要在執行個體選取項目中新增的機器類型,然後按一下「Done」(完成)。
針對要新增至執行個體選項的每個機器類型,重複執行這個步驟。
新增完機器類型後,按一下「Done」(完成)。
在「Instance selections」(執行個體選項) 視窗中,按一下「Done」(完成)。
其他欄位保留預設設定,或視需要修改。
點選「建立」。
gcloud
如要建立具有多種機型的區域性 MIG,請使用 instance-groups managed create 指令,如下所示:
gcloud compute instance-groups managed create INSTANCE_GROUP_NAME \
--region REGION \
--size TARGET_SIZE \
--template INSTANCE_TEMPLATE_URL \
--target-distribution-shape SHAPE \
--instance-redistribution-type none \
--instance-selection-machine-types MACHINE_TYPE,MACHINE_TYPE,...
可用區 MIG 不支援執行個體彈性。不過,如要在單一可用區建立 MIG,請將目標分配型態設為 any-single-zone。此外,如要指定特定可用區,請使用 any-single-zone 分布型態,並加入 --zones
ZONE 旗標。
更改下列內容:
INSTANCE_GROUP_NAME:MIG 的名稱。REGION:要建立 MIG 的區域。TARGET_SIZE:您希望 MIG 建立及維護的 VM 數量。INSTANCE_TEMPLATE_URL:執行個體範本的網址,用於在 MIG 中建立執行個體。網址可以包含執行個體範本的 ID 或名稱。請指定下列其中一個值:- 區域性執行個體範本:
projects/PROJECT_ID/regions/REGION/instanceTemplates/INSTANCE_TEMPLATE_ID - 全域執行個體範本:
INSTANCE_TEMPLATE_ID
- 區域性執行個體範本:
SHAPE:目標分配型態。可能的值為balanced、any或any-single-zone。MACHINE_TYPE:要在 MIG 中設定的機型,例如n1-standard-16,n2-standard-16,e2-standard-16。
Terraform
如果您尚未建立執行個體範本,請建立執行個體範本,指定 MIG 中每個 VM 的所需 VM 屬性。
如要建立具有多種機型的區域 MIG,請使用 google_compute_region_instance_group_manager 資源。
如要瞭解如何套用或移除 Terraform 設定,請參閱「基本 Terraform 指令」。
REST
如要建立具有多種機型的區域 MIG,請向 regionInstanceGroupManagers.insert 方法發出 POST 要求。
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceGroupManagers
{
"name": "INSTANCE_GROUP_NAME",
"targetSize": TARGET_SIZE,
"instanceTemplate": "INSTANCE_TEMPLATE_URL",
"distributionPolicy": {
"targetShape": "SHAPE"
},
"updatePolicy": {
"instanceRedistributionType": "NONE"
},
"instanceFlexibilityPolicy": {
"instanceSelections": {
"INSTANCE_SELECTION": {
"machineTypes": [
"MACHINE_TYPE_1",
"MACHINE_TYPE_2",
...
]
}
}
}
}
可用區 MIG 不支援執行個體彈性。不過,如要在單一可用區建立 MIG,請將目標分配型態設為 ANY_SINGLE_ZONE。此外,如要指定特定可用區,請使用 ANY_SINGLE_ZONE 分布型態,並在要求中加入 distributionPolicy.zones[].zone 欄位。
更改下列內容:
PROJECT_ID:您的專案 ID。REGION:要建立 MIG 的區域。INSTANCE_GROUP_NAME:MIG 的名稱。TARGET_SIZE:您希望 MIG 建立及維護的 VM 數量。INSTANCE_TEMPLATE_URL:執行個體範本的網址,用於在 MIG 中建立執行個體。網址可以包含執行個體範本的 ID 或名稱。請指定下列其中一個值:- 區域性執行個體範本:
projects/PROJECT_ID/regions/REGION/instanceTemplates/INSTANCE_TEMPLATE_ID - 全域執行個體範本:
INSTANCE_TEMPLATE_ID
- 區域性執行個體範本:
SHAPE:目標分配型態。可能的值為BALANCED、ANY或ANY_SINGLE_ZONE。INSTANCE_SELECTION:機型清單的名稱。MACHINE_TYPE:要在 MIG 中設定的機型,例如"n1-standard-16","n2-standard-16","e2-standard-16"。
建立含有多種機型和偏好設定的 MIG
控制台
前往 Google Cloud 控制台的「Instance groups」(執行個體群組) 頁面。
點選「建立執行個體群組」。
在「Name」(名稱) 欄位中,輸入 MIG 的名稱。
在「Instance template」(執行個體範本) 清單中,選取要用於 MIG 的執行個體範本。
您必須先完成下列操作,才能指定「Number of instances」(執行個體數量) 並新增「Instance selections」(執行個體選項):
前往頁面的「Location」(位置) 部分,並按照下列步驟設定位置:
選取「多可用區」。
在「Regions」(區域) 和「Zones」(可用區) 下拉式選單中,選取要在 MIG 中建立 VM 的區域和可用區。如果選取區域執行個體範本,系統預設會選取該範本的區域。
在「Target distribution shape」(目標分配型態) 欄位中,選取「Balanced」(平衡)、「Any」(任何) 或「Any single zone」(任何單一可用區)。
如果選取「Balanced」(平衡) 或「Any single zone」(任何單一可用區),請在開啟的對話方塊中按一下「Disable instance redistribution」(停用執行個體重新分配)。
如果選取「Any」(任何),請務必取消勾選「Allow instance redistribution」(允許重新分配執行個體) 核取方塊。
前往頁面的「Autoscaling」(自動調度資源) 部分,然後按照下列步驟刪除自動調度資源設定:
在「Autoscaling mode」(自動調度資源模式) 下拉式選單中,按一下「Delete autoscaling configuration」(刪除自動調度資源設定)。
在開啟的對話方塊中,按一下「刪除」。
向上捲動至「Number of instances」(執行個體數量) 欄位。
在「Number of instances」(執行個體數量) 欄位中,指定群組中所需的 VM 數量。
在「Instance selections」(執行個體選項) 部分,按一下「Add selections」(新增選項)。
「Instance selections」(執行個體選項) 視窗隨即開啟。 針對要在 MIG 中新增的每個執行個體選項,重複執行下列步驟。
按一下「Add instance selection」(新增執行個體選項)。
在「New instance selection」(選取新執行個體) 部分,執行下列操作:
在「Name」(名稱) 欄位中,輸入執行個體選項的名稱。
在「Rank」(排名) 欄位中,輸入您為 MIG 新增的執行個體選項偏好順序。
在「Machine types」(機器類型) 區段中,按一下「Add machine type」(新增機器類型),選取要在執行個體選取項目中新增的機器類型,然後按一下「Done」(完成)。
針對要新增至執行個體選項的每個機器類型,重複執行這個步驟。
新增完機器類型後,按一下「Done」(完成)。
完成新增執行個體選項後,請按一下「Done」(完成)。
其他欄位保留預設設定,或視需要修改。
點選「建立」。
gcloud
如要建立具有多種機型和偏好設定的區域性 MIG,請使用 instance-groups managed create 指令。
gcloud compute instance-groups managed create INSTANCE_GROUP_NAME \
--region REGION \
--size TARGET_SIZE \
--template INSTANCE_TEMPLATE_URL \
--target-distribution-shape SHAPE \
--instance-redistribution-type none \
--instance-selection "name=INSTANCE_SELECTION_1,machine-type=MACHINE_TYPE_1,machine-type=MACHINE_TYPE_2,rank=RANK_1" \
--instance-selection "name=INSTANCE_SELECTION_2,machine-type=MACHINE_TYPE_3,machine-type=MACHINE_TYPE_4,rank=RANK_2"
可用區 MIG 不支援執行個體彈性。不過,如要在單一可用區建立 MIG,請將目標分配型態設為 any-single-zone。此外,如要指定特定可用區,請使用 any-single-zone 分布型態,並加入 --zones
ZONE 旗標。
更改下列內容:
INSTANCE_GROUP_NAME:MIG 的名稱。REGION:要建立 MIG 的區域。TARGET_SIZE:您希望 MIG 建立及維護的 VM 數量。INSTANCE_TEMPLATE_URL:執行個體範本的網址,用於在 MIG 中建立執行個體。網址可以包含執行個體範本的 ID 或名稱。請指定下列其中一個值:- 區域性執行個體範本:
projects/PROJECT_ID/regions/REGION/instanceTemplates/INSTANCE_TEMPLATE_ID - 全域執行個體範本:
INSTANCE_TEMPLATE_ID
- 區域性執行個體範本:
SHAPE:目標分配型態。可能的值為balanced、any或any-single-zone。不支援其他目標分布形狀。INSTANCE_SELECTION:機型清單的名稱。MACHINE_TYPE:要在 MIG 中設定的機器類型。RANK:代表執行個體選取偏好順序的數字。值越小,偏好程度越高。
Terraform
如果您尚未建立執行個體範本,請建立執行個體範本,指定 MIG 中每個 VM 的 VM 屬性。
如要建立具有多個機型和偏好設定的區域性 MIG,請使用 google_compute_region_instance_group_manager 資源。
如要瞭解如何套用或移除 Terraform 設定,請參閱「基本 Terraform 指令」。
REST
如要建立具有多個機型和偏好設定的區域 MIG,請向 regionInstanceGroupManagers.insert 方法發出 POST 要求。
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceGroupManagers
{
"name": "INSTANCE_GROUP_NAME",
"targetSize": TARGET_SIZE,
"instanceTemplate": "INSTANCE_TEMPLATE_URL",
"distributionPolicy": {
"targetShape": "SHAPE"
},
"updatePolicy": {
"instanceRedistributionType": "NONE"
},
"instanceFlexibilityPolicy": {
"instanceSelections": {
"INSTANCE_SELECTION_1": {
"machineTypes": [
"MACHINE_TYPE_1",
"MACHINE_TYPE_2",
...
],
"rank": RANK_1
},
"INSTANCE_SELECTION_2": {
"machineTypes": [
"MACHINE_TYPE_3",
"MACHINE_TYPE_4",
...
],
"rank": RANK_2
},
...
}
}
}
可用區 MIG 不支援執行個體彈性。不過,如要在單一可用區建立 MIG,請將目標分配型態設為 ANY_SINGLE_ZONE。此外,如要指定特定可用區,請使用 ANY_SINGLE_ZONE 分布型態,並在要求中加入 distributionPolicy.zones[].zone 欄位。
更改下列內容:
PROJECT_ID:您的專案 ID。REGION:要建立 MIG 的區域。INSTANCE_GROUP_NAME:MIG 的名稱。TARGET_SIZE:您希望 MIG 建立及維護的 VM 數量。INSTANCE_TEMPLATE_URL:執行個體範本的網址,用於在 MIG 中建立執行個體。網址可以包含執行個體範本的 ID 或名稱。請指定下列其中一個值:- 區域性執行個體範本:
projects/PROJECT_ID/regions/REGION/instanceTemplates/INSTANCE_TEMPLATE_ID - 全域執行個體範本:
INSTANCE_TEMPLATE_ID
- 區域性執行個體範本:
SHAPE:目標分配型態。可能的值為BALANCED、ANY或ANY_SINGLE_ZONE。不支援其他目標分布形狀。INSTANCE_SELECTION:機型清單的名稱。MACHINE_TYPE:要在 MIG 中設定的機器類型。RANK:代表執行個體選取偏好順序的數字。值越小,偏好程度越高。
建立含有多種機型、偏好設定和其他覆寫設定的 MIG
建立含有多種機型的 MIG 時,您可以視需要為每個執行個體選取項目設定最低 CPU 平台和磁碟定義。
控制台
前往 Google Cloud 控制台的「Instance groups」(執行個體群組) 頁面。
點選「建立執行個體群組」。
在「Name」(名稱) 欄位中,輸入 MIG 的名稱。
在「Instance template」(執行個體範本) 清單中,選取要用於 MIG 的執行個體範本。
您必須先完成下列操作,才能指定「Number of instances」(執行個體數量) 並新增「Instance selections」(執行個體選項):
前往頁面的「Location」(位置) 部分,並按照下列步驟設定位置:
選取「多可用區」。
在「Regions」(區域) 和「Zones」(可用區) 下拉式選單中,選取要在 MIG 中建立 VM 的區域和可用區。如果選取區域執行個體範本,系統預設會選取該範本的區域。
在「Target distribution shape」(目標分配型態) 欄位中,選取「Balanced」(平衡)、「Any」(任何) 或「Any single zone」(任何單一可用區)。
如果選取「Balanced」(平衡) 或「Any single zone」(任何單一可用區),請在開啟的對話方塊中按一下「Disable instance redistribution」(停用執行個體重新分配)。
如果選取「Any」(任何),請務必取消勾選「Allow instance redistribution」(允許重新分配執行個體) 核取方塊。
前往頁面的「Autoscaling」(自動調度資源) 部分,然後按照下列步驟刪除自動調度資源設定:
在「Autoscaling mode」(自動調度資源模式) 下拉式選單中,按一下「Delete autoscaling configuration」(刪除自動調度資源設定)。
在開啟的對話方塊中,按一下「刪除」。
向上捲動至「Number of instances」(執行個體數量) 欄位。
在「Number of instances」(執行個體數量) 欄位中,指定群組中所需的 VM 數量。
在「Instance selections」(執行個體選項) 部分,按一下「Add selections」(新增選項)。
「Instance selections」(執行個體選項) 視窗隨即開啟。 針對要在 MIG 中新增的每個執行個體選項,重複執行下列步驟。
按一下「Add instance selection」(新增執行個體選項)。
在「New instance selection」(選取新執行個體) 部分,執行下列操作:
在「Name」(名稱) 欄位中,輸入執行個體選項的名稱。
在「Rank」(排名) 欄位中,輸入您為 MIG 新增的執行個體選項偏好順序。
在「Machine types」(機器類型) 區段中,按一下「Add machine type」(新增機器類型),選取要在執行個體選取項目中新增的機器類型,然後按一下「Done」(完成)。
針對要新增至執行個體選取項目的每個機器類型,重複執行這個步驟。
如要覆寫執行個體範本中指定的最低 CPU 平台,請勾選「Override CPU platform for this selection」(覆寫所選項目的 CPU 平台) 核取方塊。在「CPU platform」(CPU 平台) 清單中,選取要用於執行個體選取的平台。
如要覆寫執行個體範本中指定的磁碟設定,或要連接儲存空間,請勾選「Override disks」(覆寫磁碟) 核取方塊。
如要覆寫開機磁碟,請在「Boot disk」(開機磁碟) 區段中按一下「Change」(變更),然後按照提示操作。
如要連接儲存空間,請按一下「Add new disk」(新增磁碟) 或「Attach existing disk」(連接現有磁碟),然後按照提示操作。
新增機器類型和覆寫設定後,按一下「Done」(完成)。
完成新增執行個體選項後,請按一下「Done」(完成)。
其他欄位保留預設設定,或視需要修改。
點選「建立」。
gcloud
使用 instance-groups managed create 指令。
gcloud compute instance-groups managed create INSTANCE_GROUP_NAME \
--region REGION \
--size TARGET_SIZE \
--template INSTANCE_TEMPLATE_URL \
--force-update-on-repair \
--target-distribution-shape SHAPE \
--instance-redistribution-type none \
--instance-flexibility-policy={"instanceSelections": \
{"INSTANCE_SELECTION_1":{"rank":RANK_1,"machineTypes":["MACHINE_TYPE_1","MACHINE_TYPE_2"],"minCpuPlatform":"MIN_CPU_PLATFORM_1","disks":[{"deviceName":"DEVICE_NAME_1","boot":true,"initializeParams":{"sourceImage":"projects/IMAGE_PROJECT/global/images/IMAGE_NAME"}}]}, \
"INSTANCE_SELECTION_2":{"rank":RANK_2,"machineTypes":["MACHINE_TYPE_3","MACHINE_TYPE_4"],"minCpuPlatform":"MIN_CPU_PLATFORM_2","disks":[{"deviceName":"DEVICE_NAME_2","boot":true,"initializeParams":{"sourceImage":"projects/IMAGE_PROJECT/global/images/IMAGE_NAME"}}]}}}
您也可以使用 YAML 或 JSON 檔案,設定執行個體彈性政策。如要這麼做,請使用 --flags-file 旗標而非 --instance-flexibility-policy 旗標,並指定檔案名稱。例如,使用 --flags-file=FILE_NAME.YAML。
更改下列內容:
INSTANCE_GROUP_NAME:MIG 的名稱。REGION:要建立 MIG 的區域。TARGET_SIZE:您希望 MIG 建立及維護的 VM 數量。INSTANCE_TEMPLATE_URL:執行個體範本的網址,用於在 MIG 中建立執行個體。網址可以包含執行個體範本的 ID 或名稱。請指定下列其中一個值:- 區域性執行個體範本:
projects/PROJECT_ID/regions/REGION/instanceTemplates/INSTANCE_TEMPLATE_ID - 全域執行個體範本:
INSTANCE_TEMPLATE_ID
- 區域性執行個體範本:
SHAPE:目標分配型態。可能的值為balanced、any或any-single-zone。不支援其他目標分布形狀。INSTANCE_SELECTION:機型清單的名稱。MACHINE_TYPE:要在 MIG 中設定的機器類型。MIN_CPU_PLATFORM:執行個體的最低 CPU 平台。DEVICE_NAME:磁碟的裝置名稱。IMAGE_PROJECT:來源映文件的專案 ID。IMAGE_NAME:來源映像檔的名稱。RANK:代表執行個體選取偏好順序的數字。值越小,偏好程度越高。
Terraform
如果您尚未建立執行個體範本,請建立執行個體範本,指定 MIG 中每個 VM 的 VM 屬性。
如要建立具有多個機型、偏好設定和其他覆寫設定的區域性 MIG,請使用 google_compute_region_instance_group_manager 資源。
如要瞭解如何套用或移除 Terraform 設定,請參閱「基本 Terraform 指令」。
REST
向 Beta 版 regionInstanceGroupManagers.insert 方法發出 POST 要求。
POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/regions/REGION/instanceGroupManagers
{
"name": "INSTANCE_GROUP_NAME",
"targetSize": "TARGET_SIZE",
"instanceTemplate": "INSTANCE_TEMPLATE_URL",
"distributionPolicy": {
"targetShape": "SHAPE"
},
"updatePolicy": {
"instanceRedistributionType": "NONE"
},
"instanceLifecyclePolicy": {
"forceUpdateOnRepair": "YES",
},
"instanceFlexibilityPolicy": {
"instanceSelections": {
"INSTANCE_SELECTION_1": {
"machineTypes": ["MACHINE_TYPE_1", "MACHINE_TYPE_2", …],
"minCpuPlatform": "MIN_CPU_PLATFORM_1",
"disks": [
{
"deviceName": "DEVICE_NAME_1",
"initializeParams": {
"sourceImage":"projects/IMAGE_PROJECT/global/images/IMAGE_NAME"
},
"boot": true
}
],
"rank": RANK_1
},
"INSTANCE_SELECTION_2": {
"machineTypes": ["MACHINE_TYPE_3", "MACHINE_TYPE_4", …],
"minCpuPlatform": "MIN_CPU_PLATFORM_2",
"disks": [
{
"deviceName": "DEVICE_NAME_2",
"initializeParams": {
"sourceImage":"projects/IMAGE_PROJECT/global/images/IMAGE_NAME"
},
"boot": true
}
],
"rank": RANK_2
}
}
}
}
更改下列內容:
PROJECT_ID:您的專案 ID。REGION:要建立 MIG 的區域。INSTANCE_GROUP_NAME:MIG 的名稱。TARGET_SIZE:您希望 MIG 建立及維護的 VM 數量。INSTANCE_TEMPLATE_URL:執行個體範本的網址,用於在 MIG 中建立執行個體。網址可以包含執行個體範本的 ID 或名稱。請指定下列其中一個值:- 區域性執行個體範本:
projects/PROJECT_ID/regions/REGION/instanceTemplates/INSTANCE_TEMPLATE_ID - 全域執行個體範本:
INSTANCE_TEMPLATE_ID
- 區域性執行個體範本:
SHAPE:目標分配型態。可能的值為BALANCED、ANY或ANY_SINGLE_ZONE。不支援其他目標分布形狀。INSTANCE_SELECTION:機型清單的名稱。MACHINE_TYPE:要在 MIG 中設定的機器類型。MIN_CPU_PLATFORM:執行個體的最低 CPU 平台。DEVICE_NAME:磁碟的裝置名稱。IMAGE_PROJECT:來源映文件的專案 ID。IMAGE_NAME:來源映像檔的名稱。RANK:代表執行個體選取偏好順序的數字。值越小,偏好程度越高。
為現有 MIG 新增執行個體彈性
您可以為現有的 MIG 新增執行個體彈性。您可以設定多種機器類型,也可以設定特定機器類型的偏好設定。
如果 MIG 已有 VM,這些 VM 會繼續使用執行個體範本中指定的機型。如要讓 MIG 中的現有 VM 使用執行個體彈性政策中的機型,請在新增政策後刪除現有 VM,然後將 MIG 調整為所需的 VM 數量。調整大小時,新的 VM 會使用政策中的機器類型。
如要修改現有的執行個體彈性政策,請參閱「變更執行個體彈性設定」。
透過下列任一方式,為 MIG 新增執行個體彈性:
新增多種機型
控制台
前往 Google Cloud 控制台的「Instance groups」(執行個體群組) 頁面。
按一下要設定多種機型的 MIG 名稱。
按一下 [編輯]。
按一下「執行個體彈性」展開該部分。
在「Instance selections」(執行個體選項) 部分,按一下「Add selections」(新增選項)。
「Instance selections」(執行個體選項) 視窗隨即開啟。
按一下「Add instance selection」(新增執行個體選項)。
在「New instance selection」(選取新執行個體) 部分,執行下列操作:
在「Name」(名稱) 欄位中,輸入執行個體選項的名稱。
在「Machine types」(機器類型) 區段中,按一下「Add machine type」(新增機器類型),選取要在執行個體選取項目中新增的機器類型,然後按一下「Done」(完成)。
針對要新增至執行個體選項的每個機器類型,重複執行這個步驟。
新增完機器類型後,按一下「Done」(完成)。
在「Instance selections」(執行個體選項) 視窗中,按一下「Done」(完成)。
按一下 [儲存]。
gcloud
如要將多種機型新增至現有的 MIG,請使用 instance-groups managed update 指令。
gcloud compute instance-groups managed update INSTANCE_GROUP_NAME \
--region REGION \
--instance-selection-machine-types MACHINE_TYPE,MACHINE_TYPE,...
更改下列內容:
INSTANCE_GROUP_NAME:MIG 的名稱。REGION:MIG 所在的區域。MACHINE_TYPE:要在 MIG 中設定的機器類型。
REST
如要將多種機器類型新增至現有的 MIG,請向 regionInstanceGroupManagers.patch 方法發出 PATCH 要求。
PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceGroupManagers/INSTANCE_GROUP_NAME
{
"instanceFlexibilityPolicy": {
"instanceSelections": {
"INSTANCE_SELECTION": {
"machineTypes": [
"MACHINE_TYPE_1",
"MACHINE_TYPE_2"
...
]
}
}
}
}
更改下列內容:
PROJECT_ID:您的專案 ID。REGION:MIG 所在的區域。INSTANCE_GROUP_NAME:MIG 的名稱。INSTANCE_SELECTION:機型清單的名稱。MACHINE_TYPE:要在 MIG 中設定的機器類型。RANK:代表執行個體選取偏好順序的數字。值越小,偏好程度越高。
新增多個機型和偏好設定
控制台
前往 Google Cloud 控制台的「Instance groups」(執行個體群組) 頁面。
按一下要設定多種機型的 MIG 名稱。
按一下 [編輯]。
按一下「執行個體彈性」展開該部分。
在「Instance selections」(執行個體選項) 部分,按一下「Add selections」(新增選項)。
「Instance selections」(執行個體選項) 視窗隨即開啟。 針對要在 MIG 中新增的每個執行個體選項,重複執行下列步驟。
按一下「Add instance selection」(新增執行個體選項)。
在「New instance selection」(選取新執行個體) 部分,執行下列操作:
在「Name」(名稱) 欄位中,輸入執行個體選項的名稱。
在「Rank」(排名) 欄位中,輸入您為 MIG 新增的執行個體選項偏好順序。
在「Machine types」(機器類型) 區段中,按一下「Add machine type」(新增機器類型),選取要在執行個體選取項目中新增的機器類型,然後按一下「Done」(完成)。
針對要新增至執行個體選項的每個機器類型,重複執行這個步驟。
新增完機器類型後,按一下「Done」(完成)。
完成新增執行個體選項後,請按一下「Done」(完成)。
按一下 [儲存]。
gcloud
如要為現有 MIG 新增多種機器類型和偏好設定,請使用 instance-groups managed update 指令
gcloud compute instance-groups managed update INSTANCE_GROUP_NAME \
--region REGION \
--instance-selection "name=INSTANCE_SELECTION_1,machine-type=MACHINE_TYPE_1,machine-type=MACHINE_TYPE_2,rank=RANK_1" \
--instance-selection "name=INSTANCE_SELECTION_2,machine-type=MACHINE_TYPE_3,machine-type=MACHINE_TYPE_4,rank=RANK_2"
更改下列內容:
INSTANCE_GROUP_NAME:MIG 的名稱。REGION:MIG 所在的區域。INSTANCE_SELECTION:機型清單的名稱。MACHINE_TYPE:要在 MIG 中設定的機器類型。RANK:代表執行個體選取偏好順序的數字。值越小,偏好程度越高。
REST
如要將多個機型和偏好設定新增至現有的 MIG,請向 regionInstanceGroupManagers.patch 方法發出 PATCH 要求。
PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceGroupManagers/INSTANCE_GROUP_NAME
{
"instanceFlexibilityPolicy": {
"instanceSelections": {
"INSTANCE_SELECTION_1": {
"machineTypes": [
"MACHINE_TYPE_1",
"MACHINE_TYPE_2"
],
"rank": RANK_1
},
"INSTANCE_SELECTION_2": {
"machineTypes": [
"MACHINE_TYPE_3",
"MACHINE_TYPE_4"
],
"rank": RANK_2
}
}
}
}
更改下列內容:
PROJECT_ID:您的專案 ID。REGION:MIG 所在的區域。INSTANCE_GROUP_NAME:MIG 的名稱。INSTANCE_SELECTION:機型清單的名稱。MACHINE_TYPE:要在 MIG 中設定的機器類型。RANK:代表執行個體選取偏好順序的數字。值越小,偏好程度越高。
新增多個機型、偏好設定和其他覆寫設定
控制台
前往 Google Cloud 控制台的「Instance groups」(執行個體群組) 頁面。
按一下要設定多種機型的 MIG 名稱。
按一下 [編輯]。
按一下「執行個體彈性」展開該部分。
在「Instance selections」(執行個體選項) 部分,按一下「Add selections」(新增選項)。
「Instance selections」(執行個體選項) 視窗隨即開啟。 針對要在 MIG 中新增的每個執行個體選項,重複執行下列步驟。
按一下「Add instance selection」(新增執行個體選項)。
在「New instance selection」(選取新執行個體) 部分,執行下列操作:
在「Name」(名稱) 欄位中,輸入執行個體選項的名稱。
在「Rank」(排名) 欄位中,輸入您為 MIG 新增的執行個體選項偏好順序。
在「Machine types」(機器類型) 區段中,按一下「Add machine type」(新增機器類型),選取要在執行個體選取項目中新增的機器類型,然後按一下「Done」(完成)。
針對要新增至執行個體選取項目的每個機器類型,重複執行這個步驟。
如要覆寫執行個體範本中指定的最低 CPU 平台,請勾選「Override CPU platform for this selection」(覆寫所選項目的 CPU 平台) 核取方塊。在「CPU platform」(CPU 平台) 清單中,選取要用於執行個體選取的平台。
如要覆寫執行個體範本中指定的磁碟設定,或要連接儲存空間,請勾選「Override disks」(覆寫磁碟) 核取方塊。
如要覆寫開機磁碟,請在「Boot disk」(開機磁碟) 區段中按一下「Change」(變更),然後按照提示操作。
如要連接儲存空間,請按一下「Add new disk」(新增磁碟) 或「Attach existing disk」(連接現有磁碟),然後按照提示操作。
新增機器類型和覆寫設定後,按一下「Done」(完成)。
完成新增執行個體選項後,請按一下「Done」(完成)。
按一下 [儲存]。
gcloud
如要為現有 MIG 新增多個機型、偏好設定和執行個體屬性覆寫,請使用 beta instance-groups managed update 指令。
gcloud beta compute instance-groups managed update INSTANCE_GROUP_NAME \
--region REGION \
--instance-flexibility-policy= '{"instanceSelections": \
{"INSTANCE_SELECTION_1":{"rank":RANK_1,"machineTypes":["MACHINE_TYPE_1","MACHINE_TYPE_2"],"minCpuPlatform":"MIN_CPU_PLATFORM_1","disks":[{"device-name":"DEVICE_NAME_1","boot":true,"initializeParams":{"sourceImage":"projects/IMAGE_PROJECT/global/images/IMAGE_NAME"}}]}, \
"INSTANCE_SELECTION_2":{"rank":RANK_2,"machineTypes":["MACHINE_TYPE_3","MACHINE_TYPE_4"],"minCpuPlatform":"MIN_CPU_PLATFORM_2","disks":[{"device-name":"DEVICE_NAME_2","boot":true,"initializeParams":{"sourceImage":"projects/IMAGE_PROJECT/global/images/IMAGE_NAME"}}]}}}'
您也可以使用 YAML 或 JSON 檔案設定執行個體彈性政策。如要這麼做,請使用 --flags-file 旗標而非 --instance-flexibility-policy 旗標,並指定檔案名稱。例如,使用 --flags-file=FILE_NAME.YAML。
更改下列內容:
INSTANCE_GROUP_NAME:MIG 的名稱。REGION:MIG 所在的區域。INSTANCE_SELECTION:機型清單的名稱。MACHINE_TYPE:要在 MIG 中設定的機器類型。MIN_CPU_PLATFORM:執行個體的最低 CPU 平台。DEVICE_NAME:磁碟的裝置名稱。IMAGE_PROJECT:來源映文件的專案 ID。IMAGE_NAME:來源映像檔的名稱。RANK:代表執行個體選取偏好順序的數字。值越小,偏好程度越高。
REST
如要為現有 MIG 新增多個機型、偏好設定和執行個體屬性覆寫項目,請向 Beta 版 regionInstanceGroupManagers.patch 方法發出 PATCH 要求。
PATCH https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/regions/REGION/instanceGroupManagers/INSTANCE_GROUP_NAME
{
"instanceFlexibilityPolicy": {
"instanceSelections": {
"INSTANCE_SELECTION_1": {
"machineTypes": [
"MACHINE_TYPE_1",
"MACHINE_TYPE_2"
],
"minCpuPlatform": "MIN_CPU_PLATFORM_1",
"disks": [
{
"deviceName": "DEVICE_NAME_1",
"initializeParams": {
"sourceImage":"projects/IMAGE_PROJECT/global/images/IMAGE_NAME"
},
"boot": true
}
],
"rank": RANK_1
},
"INSTANCE_SELECTION_2": {
"machineTypes": [
"MACHINE_TYPE_3",
"MACHINE_TYPE_4"
],
"minCpuPlatform": "MIN_CPU_PLATFORM_2",
"disks": [
{
"deviceName": "DEVICE_NAME_2",
"initializeParams": {
"sourceImage":"projects/IMAGE_PROJECT/global/images/IMAGE_NAME"
},
"boot": true
}
],
"rank": RANK_2
}
}
}
}
更改下列內容:
PROJECT_ID:您的專案 ID。REGION:MIG 所在的區域。INSTANCE_GROUP_NAME:MIG 的名稱。INSTANCE_SELECTION:機型清單的名稱。MACHINE_TYPE:要在 MIG 中設定的機器類型。MIN_CPU_PLATFORM:執行個體的最低 CPU 平台。DEVICE_NAME:磁碟的裝置名稱。IMAGE_PROJECT:來源映文件的專案 ID。IMAGE_NAME:來源映像檔的名稱。RANK:代表執行個體選取偏好順序的數字。值越小,偏好程度越高。
設定執行個體彈性的 YAML 檔案範例
您可以使用 YAML 或 JSON 檔案設定執行個體彈性政策。如要這麼做,請在 gcloud CLI 指令中使用 --flags-file 旗標,並指定檔案名稱。例如,使用 --flags-file=FILE_NAME.YAML。
以下是 YAML 檔案範例:
--instance-flexibility-policy:
instanceSelections:
first-preference:
rank: 1
machineTypes:
- n2-standard-8
minCpuPlatform: "Intel Ice Lake"
disks:
- deviceName: data-disk
boot: false
initializeParams:
sourceImage: projects/debian-cloud/global/images/debian-12
diskType: pd-ssd
後續步驟
- 查看執行個體彈性設定。
- 監控 MIG 中的執行個體分布情形,查看執行個體在不同機型和可用區的分布情形。
- 變更或移除彈性設定。