代管執行個體群組 (MIG) 的執行個體彈性功能可讓您為群組中的虛擬機器 (VM) 執行個體指定多個機型,而非僅限單一機型。如果某個機型無法使用,MIG 會根據目前的資源可用性,自動從清單中選取其他相容類型。這種彈性有助於提高資源取得能力,特別是可在不同機器類型上運作,且需要大規模容量或高需求硬體的應用程式。
本文說明 MIG 的執行個體彈性運作方式和限制。如要瞭解如何設定 MIG 以使用執行個體彈性,請參閱「新增執行個體彈性」。
執行個體彈性
MIG 會根據您選取的執行個體範本建立所有 VM。執行個體範本會指定每個 VM 要使用的機型。有了執行個體彈性,您就能列出與應用程式相容的所有機型。
下圖比較使用單一機器類型的 MIG,以及使用執行個體彈性的 MIG。如圖所示,採用單一機器類型的 MIG 會根據執行個體範本建立相同的 VM,而具備執行個體彈性的 MIG 則可建立不同機器類型和大小的 VM。
執行個體彈性的運作方式
根據預設,MIG 會使用執行個體範本中的單一機型建立所有 VM。您可以在執行個體彈性政策 (instanceFlexibilityPolicy) 中設定執行個體選項 (instanceSelections),在 MIG 中設定多個機型。
您也可以指定在不同 CPU 平台和不同架構 (x86 和 Arm 架構) 上執行的機型。如要使用對最低 CPU 平台或磁碟有不同要求的機型,請使用執行個體彈性政策,覆寫執行個體範本中的對應屬性。詳情請參閱「minCpuPlatform 和 disks 覆寫值的運作方式」。
機型覆寫範例
如果工作負載可在多種不同的機器類型上運作,您可以在單一 instanceSelection 中,設定與應用程式相容的所有機器類型清單,如下所示:
"instanceFlexibilityPolicy": {
"instanceSelections": {
"instance-selection-1": {
"machineTypes": ["c2-standard-8","c2d-standard-8","c3-standard-8", "c3d-standard-8"]
}
}
}
所選執行個體中的機型偏好程度相同。如要讓 MIG 按照特定順序選擇機型,可以設定多個執行個體選項,每個選項都包含機型清單和定義偏好設定的排名。排名值越低,表示偏好程度越高。指派等級後,MIG 會同時檢查所有已設定機型和等級的即時可用性。接著,MIG 會使用偏好程度最高 (排名最低) 的可用機型佈建執行個體。
"instanceFlexibilityPolicy": {
"instanceSelections": {
"most-preferred": {
"rank": 1,
"machineTypes": ["c3-standard-8","c2-standard-8"]
},
"least-preferred": {
"rank": 2,
"machineTypes": ["n2-standard-16","n1-standard-16"]
}
}
}
硬體可用性會隨時間變化,除非您使用預留項目,否則無法保證能使用特定硬體,因此您的應用程式必須能在任何列出的機器類型上執行。
如果是大規模要求,MIG 可能會以高度偏好的機型滿足部分要求的執行個體,並根據即時可用性,以替代類型滿足其餘執行個體。如果 MIG 無法立即為剩餘的執行個體找到容量,這些執行個體可能會進入待處理狀態,而 MIG 會繼續檢查所選項目是否可用。
執行個體選項也可以覆寫執行個體屬性,例如 minCpuPlatform 和 disks。詳情請參閱下節「執行個體選取覆寫機制的運作方式」。
minCpuPlatform 和 disks 覆寫值的運作方式
在執行個體選取項目中,您可以指定其他執行個體屬性,例如最低 CPU 平台 (minCpuPlatform) 和磁碟 (disks),覆寫執行個體範本中定義的屬性。MIG 從執行個體選項中選取機型時,會使用該執行個體選項中指定的執行個體屬性建立 VM。如果您未在執行個體選項中指定任何屬性,MIG 會使用範本中對應的屬性。
在執行個體選取層級覆寫這些屬性,可提供更多控制權和彈性,尤其是在 MIG 中使用不同硬體時。
混合使用在不同 CPU 平台上執行的機器類型時,請覆寫最低 CPU 平台。您可以為所選機器類型建立的執行個體,指定最低 CPU 平台。這項覆寫功能可讓您混合不同的機器類型,但選擇性地套用最低 CPU 平台。或者,您也可以將
minCpuPlatform欄位設為AUTOMATIC,將執行個體選取設定設為自動選取 CPU 平台。這項自動選取功能會覆寫執行個體範本的最低 CPU 平台設定,並允許 MIG 針對所選機型使用任何相容的 CPU 平台。舉例來說,您可以在選取項目中混合 N1 和 N2 機器系列的機器類型,同時確保 N1 機器在 Intel Skylake 上運作,以提升效能。
混合使用不同架構的機型時,請覆寫磁碟。您可以指定自訂磁碟設定,覆寫執行個體屬性中指定的開機磁碟或其他磁碟,或附加特定儲存空間。這項覆寫功能可讓您混合使用不同架構或不共用磁碟技術的機型,並為各機型指定適當的開機映像檔或磁碟。
例如,您可以混合使用 C4 (x86 架構) 和 C4A (Arm 架構) 機型。x86 和 Arm 機器需要不同的開機映像檔,因此您可以使用不同的執行個體選項,覆寫各架構的開機磁碟。
指定執行個體選項的磁碟時,MIG 會根據
deviceName鍵,合併執行個體範本和執行個體選項中的磁碟。請參考下圖範例。
如要瞭解使用執行個體選取覆寫設定時的限制,請參閱本文的「限制」一節。
最低 CPU 平台和磁碟覆寫範例
假設執行個體範本的設定如下:
{
...
"disks": [
{
"autoDelete": true,
"deviceName": "boot",
"boot": true,
"diskEncryptionKey": {},
"initializeParams": {
"sourceImage": "projects/debian-cloud/global/images/family/debian-12",
"diskSizeGb": "10",
"diskType": "pd-balanced"
}
}
],
"machineType": "n2-standard-2",
...
}
下列執行個體彈性政策範例會指定最低 CPU 平台和磁碟設定,覆寫範本設定。
"instanceFlexibilityPolicy": {
"instanceSelections": {
"first-preference": {
"rank": 1,
"machineTypes": ["n4-standard-4 "],
"disks": [
{
"autoDelete": true,
"deviceName": "boot",
"boot": true,
"diskEncryptionKey": {},
"initializeParams": {
"sourceImage": "projects/debian-cloud/global/images/family/debian-12",
"diskSizeGb": "10",
"diskType": "hyperdisk-balanced"
}
}
]
},
"second-preference": {
"rank": 2,
"machineTypes": ["n2-standard-4"],
"minCpuPlatform": "Intel Ice Lake",
"disks": [
{
"autoDelete": true,
"deviceName": "boot",
"boot": true,
"initializeParams": {
"sourceImage": "projects/debian-cloud/global/images/family/debian-12",
"diskSizeGb": "10",
"diskType": "pd-ssd"
}
}
]
},
"third-preference": {
"rank": 3,
"machineTypes": ["n1-standard-4"],
"minCpuPlatform": "Intel Skylake",
}
}
}
MIG 如何選取機型
設定多個機型時,MIG 會根據目前的資源可用性選取機型,並優先使用未使用的預留項目。如果您設定了排名,MIG 會同時檢查所有設定機型和可用區的資源可用性和預留項目。MIG 會從容量可用的機型中,選取偏好度最高的機型 (排名最低)。在該選項中,MIG 會優先使用未使用的預留項目。
MIG 區域中的可用區也可能影響機型選擇,因為各可用區的資源可用性不同。詳情請參閱下一節,瞭解 MIG 如何選取可用區。
容量評估和錯誤記錄
MIG 會先檢查所選執行個體設定的容量,再嘗試建立 VM。如果檢查期間無法使用偏好度較高的機型,MIG 會選取可用的偏好度較低機型,不會嘗試建立無法使用的機型。
只有在 VM 建立失敗時,Compute Engine 才會記錄 ZONE_RESOURCE_POOL_EXHAUSTED (資源用盡) 錯誤,例如 MIG 嘗試使用原本無法使用的機器類型修復失敗的 VM。在容量檢查期間,MIG 會略過無法使用的偏好機型,不會嘗試建立 VM,因此 Cloud Logging 不會顯示這些機型的資源用盡錯誤。
MIG 如何選取可用區
您可以在目標分配型態為 BALANCED、ANY 或 ANY_SINGLE_ZONE 的區域性 MIG 中,設定執行個體彈性。執行個體彈性不支援EVEN目標分配型態。
啟用執行個體彈性後,區域性 MIG 建立 VM 時,會根據所選目標分配型態,選取可用區,如下所示:
BALANCED:MIG 會選取有可用資源的可用區,盡可能平均分配各可用區的 VM。在所選可用區中,MIG 會根據排名 (如有設定) 和可用預留項目,優先選取機型。ANY:MIG 會選取有可用資源和預留項目的可用區。如果設定了排名,MIG 會優先選擇有排名較高機型的可用區。ANY_SINGLE_ZONE:MIG 會根據排名 (如有設定) 選取機型最多的可用區,且 MIG 可在該可用區中,使用未使用的預留項目建立最多 VM。
如要進一步瞭解目標分配型態的運作方式,請參閱「區域 MIG 目標分配型態」。
觀測能力與監控
具備執行個體彈性的 MIG 會根據即時可用性,動態選取機型和可用區。您可以即時監控執行個體在各機型和可用區的分佈情形。追蹤這項資料有助於驗證高可用性、查看備用機器類型的分配方式,以及診斷容量分配情形。如要瞭解如何查看特定 MIG 或多個 MIG 匯總的資料,請參閱「監控 MIG 中的執行個體分布情形」。
執行個體彈性和預留項目
您可以搭配預留項目使用執行個體彈性功能。根據您在執行個體範本中設定的預留項目相似度屬性,MIG 會以下列方式使用預留項目:
ANY_RESERVATION(建議用於執行個體彈性):使用任何預留項目時,MIG 會優先選取有未使用預留項目的機型。如要變更 MIG 選取機型的順序,可以設定多個執行個體選項,並使用排名指定偏好設定。MIG 會從有可用容量的機型中,選取偏好度最高 (排名數字最低) 的機型,並優先使用該排名內的可用預留項目。SPECIFIC:使用特定預留項目時,MIG 會選取與預留項目屬性相符的機型。如果選取的執行個體不含符合特定預留項目屬性的機型,則執行個體建立作業會失敗。
如要進一步瞭解預留項目,請參閱「關於預留項目」。
執行個體彈性和 Spot VM
如果具備執行個體彈性的 MIG 使用 Spot VM,MIG 會自動選取觀測到最低先占率的機型,盡可能確保工作負載不會中斷。如要覆寫這項行為,請完成下列步驟:
查看資源可用性。使用 Spot VM 建立 MIG 之前,您可以查看要建立 MIG 的區域或可用區中的資源可用性。這項操作有助於降低發生資源可用性錯誤的機率。
如需操作說明,請參閱「查看 Spot VM 的可用性」。
設定多個選取的執行個體。您可以使用排名,指定要建立 Spot VM 的機器類型和可用區。MIG 會從容量可用的機型中,選取偏好度最高 (排名最低) 的機型,並考量該選項中 Spot VM 的可靠性。
如需操作說明,請參閱「建立具有多個機型和偏好設定的 MIG」。
如要進一步瞭解如何在 MIG 中使用 Spot VM,請參閱「代管執行個體群組中的 Spot VM」。
執行個體彈性和 VM 修復
根據預設,如果 MIG 中的 VM 故障,MIG 會使用相同的設定 (包括機型) 重新建立 VM,藉此修復 VM。如果設定執行個體彈性並啟用修復時更新,就能提高在缺貨時取得資源的機會。
MIG 嘗試修復失敗的 VM 時,會先嘗試使用原始機型重新建立 VM。如果該機型無法使用,Compute Engine 會記錄 ZONE_RESOURCE_POOL_EXHAUSTED 錯誤。如果啟用修復時更新,MIG 會同時檢查所有設定的執行個體選項是否可用,並使用可用的替代機型重新建立 VM。MIG 會持續嘗試使用原始機型重新建立 VM,同時檢查替代方案,因此您可能仍會看到原始機型的資源用盡錯誤記錄。啟用修復時更新功能,也有助於確保重新建立的 VM 使用最新的執行個體彈性設定。
如要進一步瞭解修復作業,請參閱「關於修復 VM 以確保高可用性」。
執行個體彈性和自動調度資源
在具有多種機器類型的 MIG 中設定自動調度資源時,會發生以下情況:
自動配置器水平擴展 MIG 時,MIG 會選取機器類型來建立 VM,方式與非自動調度資源的 MIG 相同。詳情請參閱本文的「MIG 如何選取機型」一節。
當自動配置器縮減 MIG 時,MIG 會按照下列方式選取要刪除的 VM:
- MIG 會優先刪除最能保留目標分布型態的 VM。
- 如果您設定了排名,則在優先 VM 中,MIG 會優先刪除使用較低排名機型的 VM。
- 最後,MIG 會查看自動配置器建議,選取要刪除的 VM。
如果 MIG 包含效能相近的機器類型 (例如 vCPU 數量相同的機器),自動調度資源功能就能有效運作。否則,當 MIG 水平擴展或縮減時,自動配置器可能會更頻繁地嘗試新增或移除效能最高的機器類型。無論您為該機器類型設定的排名為何,都可能發生這種情況。
如要進一步瞭解自動調度資源,請參閱「自動調度執行個體群組資源」一文。
用途
以下各節說明 MIG 執行個體彈性的部分用途。
提高取得率
您可以設定 MIG 執行個體彈性,提高資源取得率:
機型:基本設定是在單一排名中設定多個機型。這個單一排名會給予它們相同的偏好,讓 MIG 根據資源可用性選擇其中任何一個。不過,如果您有偏好設定,可以指派不同的排名,指定機器類型的偏好順序。
位置:建立 MIG 時,您可以選擇所有可用區,並使用
ANY目標分配型態,進一步提高取得資源的機率。ANY形狀可讓 MIG 搜尋所有可用區的容量。Spot VM 和先占:使用 Spot VM 時,為盡可能提高取得 VM 的機率,並盡量減少先占,Google 建議您在同一等級中加入盡可能多的相容機型。這項設定可讓 MIG 選擇先占率最低的機器類型,盡可能減少工作負載中斷。如果您設定的機型具有不同排名,MIG 會根據排名而非先占率來優先選擇機型,這可能會導致選取先占率較高的機型。
實現最佳成本效益
只要按照下列方式設定 MIG 的執行個體彈性,MIG 就能自動為基礎架構佈建最具成本效益的執行個體:
機器類型:選取可為工作負載提供理想性價比的機器類型。您不需要指定每種機器類型的所有可用大小,只要指定最符合您需求的成本效益大小即可。
排名:根據您的費用偏好設定,為執行個體選項指派排名,優先選擇費用最低的機器類型。這有助於確保您能根據可用性,取得費用最低的機器類型。
位置:建立 MIG 時,請選取所有可用區和
ANY目標分配型態。這會提高在可用區域取得最低成本機器類型的機會。
MIG 會根據執行個體彈性設定,自動佈建可用的最佳機型組合,滿足您的成本條件和要求的總容量。確保在指定時間內盡可能降低成本。
提升成效
您可以設定 MIG 執行個體彈性,盡可能提高效能。請選用最符合工作負載需求的機器家族和大小。接著,根據效能將機型從高到低排序,並在每個系列中使用最偏好的大小。MIG 會根據排名和機型,從所有可用資源中選取效能最高的機器。
由於新一代機器通常提供更高的每核心效能,因此您不必限制機器選擇,在不同系列中使用相同大小 (vCPU 數量) 即可達到同等效能。舉例來說,在不同機器系列中選取時,您可以混合不同的 CPU 數量,例如將 n1-standard-32 與 n2-standard-16 混合。
此外,為所選執行個體指定 minCpuPlatform,可確保 MIG 選取高效能 CPU 平台。
順利轉換至最新機型
您可以設定 MIG 執行個體彈性,優先採用最新一代的機型,並使用舊一代的機型做為容量備用。方法是建立包含最新一代機型的執行個體選項,並指派較低的排名 (偏好程度較高)。如果這些機型需要不同的磁碟設定,請使用這個執行個體選項中的磁碟覆寫功能,定義特定磁碟屬性。建立第二個執行個體選項,其中包含舊世代機型,做為備用選項。為這個執行個體選項指派較高的排名 (偏好程度較低)。
建立 MIG 時,請選取區域中的所有可用區和 ANY 目標分配型態。這項設定可確保 MIG 檢查所有設定選項和可用區的容量,並優先在容量可用的位置佈建最新一代機器。如果 MIG 找不到足夠的最新一代容量,就會佈建舊一代的機型。這種做法可確保您要求的總容量一律能滿足,同時盡可能提高最新硬體的占比。
限制
執行個體彈性有下列限制:
可用區 MIG 不支援執行個體彈性。您可以改用單一可用區的區域性 MIG。
彈性啟動型 VM 不支援執行個體彈性。
執行個體彈性不支援下列 MIG 功能:
- 區域性 MIG 的目標分配型態設為
EVEN - 自動更新 VM 設定和初期測試更新 (兩個執行個體範本)
- 暫停或停止 VM
- 一次建立 GPU VM 的大小調整要求
- 區域性 MIG 的目標分配型態設為
覆寫
minCpuPlatform和disks時,也須遵守下列限制:你必須啟用維修更新。
為現有執行個體選取項目設定
minCpuPlatform或disks時,也必須加入machineTypes欄位。如果沒有machineTypes欄位,作業會失敗並顯示錯誤。您無法將有狀態政策或個別執行個體設定,套用至透過執行個體選取覆寫的磁碟。
只有允許選擇本機 SSD 磁碟數量的機型,才能覆寫本機 SSD。您無法覆寫
-lssd變體機器類型的本機 SSD,因為這類機器類型會自動連接本機 SSD 磁碟。您必須為所有選取的執行個體指定不重複的機型。舉例來說,您無法在一個選項中指定
n1-standard-2搭配SkylakeCPU,又在另一個選項中指定搭配BroadwellCPU。
為確保具備執行個體彈性的 MIG 能有效負載平衡或自動調度資源,請使用效能相似的機型,例如 vCPU 數量相同。不過,「類似效能」不限於在不同系列中使用相同大小;由於較新的機器世代通常每個 vCPU 的效能較高,因此您可以混合不同的 vCPU 數量 (例如混合
n1-standard-32和n2-standard-28)。在 Cloud Load Balancing 中,效能相似的機型可避免小型硬體過度使用,以及快速機器使用率不足的情況。
在自動調度資源中,效能相似的機器類型可防止新增或刪除效能最高的機器類型。