代管執行個體群組 (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 會自動選取觀察到的先占率最低的機型,盡量減少工作負載中斷情形。如要覆寫這項行為,請完成下列步驟:
查看資源可用性。建立含有 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 的原始機型無法使用,您會收到缺貨錯誤。啟用修復更新後,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目標分配型態,可進一步提高取得資源的機率。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 功能:
- 目標分配型態設為
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 數量相同。不過,「類似效能」不限於在不同系列中使用相同大小,因為新一代機器通常每個 vCPU 的效能較高,因此您可以混合使用不同 vCPU 數量 (例如混合使用
n1-standard-32和n2-standard-28)。在 Cloud Load Balancing 中,效能相近的機器類型可避免較小硬體過度使用,以及較快機器使用不足的情況。
在自動調度資源中,效能相似的機型可能會阻止新增或刪除效能最高的機型。
後續步驟
- 進一步瞭解不同機器類型。
- 在 MIG 中新增執行個體彈性。
- 查看 MIG 中的執行個體彈性。