代管執行個體群組 (MIG) 的執行個體彈性功能可讓您為群組中的虛擬機器 (VM) 執行個體指定多個機型,而不限於單一機型。如果某個機型無法使用,MIG 會根據目前的資源可用性,從清單中自動選取其他相容類型。這項彈性有助於提高資源取得率,特別是對於可在不同機器類型上運作,且需要大規模容量或高需求硬體的應用程式。
本文說明 MIG 中的執行個體彈性功能運作方式和限制。如要瞭解如何設定 MIG 來使用執行個體彈性,請參閱新增執行個體彈性。
執行個體彈性
MIG 會根據您選取的執行個體範本建立所有 VM。執行個體範本會指定每個 VM 要使用的機型。有了執行個體彈性,您就能列出與應用程式相容的所有機器類型。
下圖比較使用單一機器類型的 MIG,以及使用執行個體彈性的 MIG。如圖片所示,具有單一機型的 MIG 會根據執行個體範本建立相同的 VM,而具有執行個體彈性的 MIG 則可建立具有不同機型和大小的 VM。
執行個體彈性的運作方式
根據預設,MIG 會使用執行個體範本中的單一機型建立所有 VM。您可以在 MIG 中設定多個機型,方法是在執行個體彈性政策 (instanceFlexibilityPolicy) 中設定執行個體選取項目 (instanceSelections)。
您也可以指定在不同 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 會嘗試使用偏好順序較高的機器類型建立 VM。如果這些偏好的機型無法使用,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"]
}
}
}
您的應用程式必須能在任何列出的機器類型上執行,因為硬體可用性會隨時間變更,除非使用預訂,否則無法保證特定硬體。
執行個體選取項目也可以覆寫執行個體屬性,例如 minCpuPlatform 和 disks。詳情請參閱下文的「執行個體選取覆寫的運作方式」一節。
minCpuPlatform 和 disks 覆寫的運作方式
在執行個體選取作業中,您可以指定其他執行個體屬性,例如最低 CPU 平台 (minCpuPlatform) 和磁碟 (disks),藉此覆寫執行個體範本中定義的屬性。當 MIG 從執行個體選取項目中選取機型時,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 如何選取可用區
您可以在具有 BALANCED、ANY 或 ANY_SINGLE_ZONE 目標分配型態的區域性 MIG 中,設定執行個體彈性。執行個體彈性不支援「EVEN」目標分配型態。
透過執行個體彈性,區域性 MIG 建立 VM 時,會根據所選目標分配型態選取可用區,如下所示:
BALANCED:MIG 會選取有可用資源的可用區,盡可能平均分配各可用區的 VM。在選取的可用區中,如果已設定,MIG 會根據等級和可用的預留項目,優先選擇機器類型。ANY:MIG 會選取有可用資源和預留項目的可用區。如果已設定等級,MIG 會優先選擇可用的機型等級可用區。ANY_SINGLE_ZONE:如果已設定,MIG 會根據排名選取機型最多的可用區,並從未使用的預留項目中建立最多 VM。
如要進一步瞭解目標分配型態的運作方式,請參閱「區域性 MIG 目標分配型態」。
執行個體彈性和預留項目
您可以搭配預留項目使用執行個體彈性設定。根據您在執行個體範本中設定的預留項目相依性屬性,MIG 會依下列方式使用預留項目:
ANY_RESERVATION(建議用於執行個體彈性設定):使用任何預留項目時,MIG 會優先選取具有未用預留項目的機型。如要變更 MIG 選取機器類型的順序,可以設定多個執行個體選項,並使用等級指定偏好設定。MIG 會先依據等級,然後考量等級內機型的可用預留項目。SPECIFIC:使用特定預留項目時,MIG 會選取符合預留項目屬性的機器類型。如果所選執行個體未包含符合特定預留項目屬性的機型,執行個體建立作業就會失敗。
如要進一步瞭解預留項目,請參閱「關於預留項目」一文。
執行個體彈性和 Spot VM
如果具有執行個體彈性的 MIG 使用 Spot VM,MIG 會自動選取觀察到的先占率最低的機型,確保工作負載受到的中斷最少。如要覆寫這項行為,您可以設定多個執行個體選取項目,並使用等級指定偏好設定。MIG 會先依偏好順序選取執行個體,然後考量 Spot VM 的可靠性。
如要進一步瞭解 Spot VM,請參閱代管執行個體群組中的 Spot VM。
執行個體彈性和 VM 修復
根據預設,如果 MIG 中的 VM 發生故障,MIG 會使用相同設定 (包括機型) 重新建立 VM,藉此修復 VM。如果您設定執行個體彈性並啟用維修更新,當缺貨時,取得資源的機會就會提高。當 MIG 嘗試重新建立 VM 時,如果 VM 的原始機型無法使用,您會收到缺貨錯誤。啟用修復更新後,代管執行個體群組:MIG 會使用您指定的執行個體選項和目前的可用性,為 VM 建立作業選擇其他機型。啟用修復時更新功能,有助於確保重新建立的 VM 使用最新的執行個體彈性設定。
如要進一步瞭解修復作業,請參閱「關於修復高可用性 VM」。
執行個體彈性和自動調度資源
在有多種機器類型的 MIG 中設定自動調度資源時,會發生下列情況:
自動配置器水平擴展代管執行個體群組:MIG 時,代管執行個體群組:MIG 會選取機型來建立 VM,方式與非自動調度資源代管執行個體群組:MIG 相同。詳情請參閱本文中的「MIG 如何選取機器類型」。
自動配置器在 MIG 中縮減資源時,MIG 會依下列方式選取要刪除的 VM:
- MIG 會優先刪除最能維持目標分配形狀的 VM。
- 如果您已設定等級,MIG 會優先刪除使用較低等級機器類型的 VM。
- 最後,MIG 會檢查自動配置器建議,選取要刪除的 VM。
如果代管執行個體群組 (MIG) 的機型效能相近 (例如具有相同 vCPU 數量的機器),自動調度資源功能就能有效運作。否則,當 MIG 水平擴展或水平縮減時,自動配置器可能會更頻繁地嘗試新增或移除效能最高的機型。無論您為該機型設定的等級為何,都可能發生這種情況。
如要進一步瞭解自動調度資源,請參閱「自動調度執行個體群組資源」一文。
用途
以下各節說明 MIG 中執行個體彈性的幾個用途。
實現最佳成本效益
設定 MIG 的執行個體彈性設定時,請按照下列步驟操作,MIG 就能自動為基礎架構佈建最具成本效益的執行個體:
機型:選取可為工作負載提供最佳性價比的機型。您不必指定每種機型的所有可用大小,只需指定最符合需求且成本效益最高的大小即可。
排名:根據您的成本偏好為執行個體選項指派排名,成本最低的機型為首選。這有助於確保您根據可用性取得成本最低的機型。
位置:建立代管執行個體群組:MIG 時,請選取所有可用區和
ANY目標分配型態。這樣一來,您就能在提供最低成本機器類型的可用區中,提高取得這類機器的機會。
系統會根據執行個體彈性設定,自動調度可用的最佳機型組合,以符合您的費用條件和要求的總容量。確保在特定時間內達到最低費用。
提高取得難易度
您可以設定 MIG 執行個體彈性,提高取得執行個體的機率。如要這麼做,請在同一等級中,盡量選取與應用程式相容的機器類型。建立代管執行個體群組:MIG 時,您可以選擇所有可用區,並使用 ANY 目標分配型態,優先選擇有資源的可用區,進一步提高取得資源的機會。視選取的機器類型和ANY形狀而定,MIG 會在容量最充足的地方尋找容量。
為盡量取得 Spot VM 並減少先占機率,Google 建議您在相同等級中納入各種機器類型。這會擴大 MIG 搜尋可用容量的範圍,進而透過 Spot 佈建模型盡量爭取最佳結果。
爭取最高成效
您可以設定 MIG 執行個體彈性,盡可能提升效能。如要這麼做,請選取最適合工作負載的機器家族和大小。然後根據效能,從最高到最低,在每個系列中選取最偏好的大小,並依此排序機型。MIG 會根據排名和機器類型,從所有可用資源中選取效能最高的機器。
此外,為執行個體選取項目指定 minCpuPlatform,可確保 MIG 選取高效能的 CPU 平台。
順暢轉換至最新機型
您可以設定 MIG 執行個體彈性,優先採用最新一代的機型,同時使用舊一代的機型做為容量備援。如要這麼做,請建立包含最新一代機器類型的執行個體選取項目,並指派較低的等級 (較高的偏好設定)。如果這些機器類型需要不同的磁碟設定,請使用這個執行個體選取範圍內的磁碟覆寫,定義特定磁碟屬性。建立第二個執行個體選項,其中包含舊版機型,做為備援。為這個執行個體選取項目指派較高的等級 (較低的偏好設定)。
建立代管執行個體群組:MIG 時,請選取區域中的所有可用區,以及「ANY」目標分配型態。這項設定可確保 MIG 先在區域內的所有可用區中搜尋最新一代的機器。如果 MIG 找不到足夠的最新一代容量,就會佈建舊一代機器,確保系統一律能滿足您要求的總容量,同時盡可能使用最新硬體。
限制
執行個體彈性有下列限制:
區域 MIG 不支援執行個體彈性設定。您可以改用單一可用區的區域性 MIG。
執行個體彈性不支援下列 MIG 功能:
- 目標分配型態設為
EVEN的區域性代管執行個體群組:MIG - 自動更新 VM 設定和Canary 更新 (兩個執行個體範本)
- 暫停或停止 VM
- 大小調整要求 一次建立多個 GPU VM
- 目標分配型態設為
覆寫
minCpuPlatform和disks時,也適用下列限制:你必須啟用維修進度更新。
為現有執行個體選取項目設定
minCpuPlatform或disks時,您也必須加入machineTypes欄位。如果沒有machineTypes欄位,作業就會失敗並顯示錯誤。您無法將有狀態政策或每個執行個體的設定套用至透過執行個體選取項目覆寫的磁碟。
只有可選擇本機 SSD 數量的機型,才能覆寫本機 SSD。您無法為
-lssd機器類型變體覆寫本機 SSD,因為這些變體會自動連結本機 SSD 磁碟。所有執行個體選取項目都必須指定不重複的機型。舉例來說,您無法在一個選項中指定
n1-standard-2CPU,在另一個選項中指定BroadwellCPU。Skylake
為確保在具有執行個體彈性的 MIG 中有效負載平衡或自動調度資源,請使用效能相似的機器類型,例如 vCPU 數量相同。
在 Cloud Load Balancing 中,效能相近的機型可避免較小硬體過度使用,以及較快機器使用不足的情況。
在自動調度資源中,效能相似的機型可能會阻止新增或刪除效能最高的機型。
後續步驟
- 進一步瞭解不同機器類型。
- 將執行個體彈性新增至 MIG。
- 查看 MIG 中的執行個體彈性。