區域性 MIG 目標分配型態

根據預設,區域性代管執行個體群組 (MIG) 會將代管的虛擬機器 (VM) 執行個體平均分配到所選可用區。不過,如果您需要的硬體並非所有可用區都有提供,或在所選可用區可能暫時無法使用,或者您需要優先使用可用區預留項目,則可能需要採用不同的分配方式。

如要設定區域性 MIG 如何在區域內的所選可用區分配代管執行個體,請設定 MIG 的目標分配型態。可用選項如下:

  • EVEN (預設):群組會建立及刪除 VM,在所選可用區中達到並維持相同的 VM 數量。在EVEN分布中,任何兩個可用區之間的 VM 數量差異不會超過 1。建議用於高可用性的服務工作負載。
  • BALANCED:群組會優先在有可用資源的可用區建立 VM,同時盡可能平均分配 VM 到所選可用區,盡量降低可用區故障的影響。建議用於高可用性服務或批次工作負載。
  • ANY:群組會挑選可用區來建立 VM 執行個體,在現有資源限制內滿足要求的 VM 數量,並盡可能提高未使用的可用區預留項目使用率。建議用於不需要高可用性的批次工作負載。
  • 任何單一可用區:群組會在單一可用區內建立所有 VM 執行個體。系統會根據硬體支援、目前的資源和配額可用性,以及相符的預留項目來選擇可用區。如果工作負載需要在 VM 之間進行大量通訊,建議搭配使用 密集執行個體配置政策。

請根據工作負載需求和所需的 MIG 功能選擇選項。請參閱比較表、用途和分配模式運作方式。

形狀比較

下表說明每種可能目標形狀的預期工作負載、用途、代管執行個體分布、功能支援,以及 MIG 在資源無法使用時的行為。

EVEN (預設) BALANCED ANY ANY_SINGLE_ZONE
預期工作負載 高可用性提供工作負載 (無狀態或有狀態) 高可用性服務工作負載 (無狀態或有狀態)

高可用性批次工作負載
批次工作負載 VM 之間需要大量通訊的批次工作負載
目的 假設各可用區有足夠的資源,盡可能降低可用區層級故障的影響。 依據各可用區的資源可用性,盡可能降低可用區層級故障的影響。 優先取得資源,並使用未使用的預留項目。 將所有 VM 集中在一個可用區,盡可能縮短 VM 之間的網路延遲時間,並降低費用。
各可用區的代管執行個體目標分布 Even。

無論資源可用性為何,任何兩個可用區之間的代管執行個體數量差異不超過 1 個。*

如果可用區容量受限,部分代管執行個體可能無法正常運作。
盡可能平均。

不保證各可用區的 VM 數量差異,這取決於目前的資源可用性。

資源可用時,分配方式與 EVEN 類似。在資源限制最嚴重的情況下,分布可能呈現任何形狀。
不限。

每個可用區可以有不同數量的代管執行個體 (包括全部或沒有)。
單一可用區。

所有執行個體都會在一個可用區內建立。每當 MIG 從零個 VM 水平擴展時,就會選擇可用區。
功能支援 EVEN (預設) BALANCED ANY ANY_SINGLE_ZONE
自動調度資源
Canary 更新
執行個體彈性
主動式執行個體重新分配 不適用
預訂 在各可用區獨立達到最大使用率。

預留項目不會影響執行個體的分配方式。
在各可用區獨立達到最大使用率。

如有預留項目,或許有助於平衡分配。
在區域內充分利用。

群組會優先使用區域中的預留項目。
在所選可用區內充分利用。

每當群組沒有 VM 且需要建立一或多個 VM 時,如果預留項目最多的可用區有足夠資源,且支援符合要求的硬體,群組就會優先選擇該可用區。
執行個體範本和有狀態設定的硬體需求 (機型、CPU、GPU、現有磁碟) 所選硬體必須在所有選取的可用區中可用。 所選硬體必須在至少一個所選可用區中可用。 所選硬體必須在至少一個所選可用區中可用。 所選硬體必須在至少一個所選可用區中可用。
單一租戶節點
處理失敗 EVEN (預設) BALANCED ANY ANY_SINGLE_ZONE
可用區中的資源暫時無法使用 Exposed

在代管執行個體較少的可用區中,建立新的代管執行個體。在資源無法使用的可用區中,持續嘗試建立 VM 執行個體,直到成功為止。

風險:無法在資源有限的可用區建立 VM。
彈性

在有資源可用的可用區中建立新的代管執行個體,同時盡可能將執行個體平均分配至所有可用區。

風險:VM 可能不會平均分配到各個可用區。
彈性

在有可用資源的可用區建立新的代管執行個體,並盡可能運用未使用的預留項目。

風險:VM 可能不會平均分配到各個可用區。
建立群組及從零開始調整大小時,具有彈性

在有可用資源的單一可用區內建立新的 VM 執行個體。

風險:如果所選可用區的資源不足,系統可能無法在水平擴展要求期間,成功建立所有額外執行個體。
可用區層級故障 彈性

健康狀態良好的可用區中的執行個體會繼續提供服務,因此影響會降到最低。

如果佈建額外執行個體,足以承受失去一個可用區,則可進一步降低影響。
彈性

健康狀態良好的可用區中的執行個體會繼續提供服務,因此影響會降到最低。

如果佈建額外執行個體,足以承受失去一個可用區,則可進一步降低影響。
暴露

如果大部分或所有執行個體都集中在故障的可用區,可能會發生服務中斷。
暴露

如果所選可用區發生故障,服務中斷將不可避免。

*如果在停用主動式執行個體重新分配功能時新增或移除執行個體,執行個體可能會分布不均。如果可用區故障或容量不足,自動調度資源的 MIG 也可能發生分配不均的情況。

用途

請參閱功能支援,然後根據用途選擇分布形狀。

平均分配工作負載,優先確保工作負載韌性

如果您執行的服務應用程式具備高可用性,且必須在可用區層級故障時仍能正常運作,效能也不會降低,請使用 EVEN 目標分布型態,並超額佈建群組大小。過度佈建群組中的執行個體數量,可保護工作負載免受可用區層級故障的影響。

視工作負載而定,建議您建立自動配置器,在負載增減時自動在群組中新增或移除執行個體。

如要進一步瞭解EVEN目標分配型態,請參閱目標型態比較,並閱讀「EVEN目標型態的運作方式」。

如要進一步瞭解如何在區域性 MIG 上部署高可用性工作負載,請參閱下列各節:

平均分配資源,取得平衡

如果您執行高可用性的服務或批次工作負載,且需要在取得資源與在區域內所選可用區平均分配 VM 執行個體之間取得平衡,請使用 BALANCED 目標分配型態。

BALANCED 形狀會優先取得資源,群組會在有可用資源的可用區建立執行個體,同時盡可能平均分配執行個體,將可用區層級故障的影響降到最低。

如果您執行的批次工作負載不需要防範可用區層級故障,請改用 ANY 目標型態。ANY 形狀會優先取得資源,並使用可用區預留項目。

將圖案設為 BALANCED 或 ANY 後,您就不必手動驗證特定硬體是否可用於特定可用區。您可以選取區域中的所有可用區,群組會自動在有您所需硬體的可用區中部署執行個體。

如要進一步瞭解 BALANCED 目標分配型態,請參閱目標型態比較,並閱讀「BALANCED 目標分配型態的運作方式」。

優先取得資源

如果您執行批次工作負載,且取得要求的執行個體數量來執行處理作業,比工作負載對可用區層級故障的復原能力更重要,請使用 ANY 目標分布型態。

如果您有相符的預留項目,請將目標形狀設為 ANY,優先使用包含相符預留項目的可用區。如要瞭解如何在執行個體範本中設定預留項目,請參閱「使用特定預留項目的執行個體」。

與 BALANCED 目標型態類似,如果批次工作負載需要下列任一功能,ANY 型態就非常實用:

  • 搭載特殊硬體的 VM,例如特定 CPU 平台或 GPU 型號。群組會根據資源可用性,將執行個體部署至支援所要求硬體的可用區,並優先選擇有相符預留項目的可用區。
  • 先占 VM。您不必探索哪些可用區有可用的先占容量。群組會自動部署至具備先占容量的可用區。
  • 核心數量多的 VM。群組會盡可能取得大型機器,並優先選擇有相符預留項目的可用區。

您不必手動驗證特定硬體是否可在特定可用區使用。您可以選取區域中的所有可用區,群組會自動在有您所需硬體的可用區中部署執行個體。

您可以選擇性刪除已完成運算的批次工作 worker 執行個體,而不影響其他 worker。與目標型態為 EVEN 且主動重新分配的群組不同,目標型態為 ANY 的群組不必達到平衡,也不會觸發重新分配。

如要進一步瞭解ANY目標分配型態,請參閱目標型態比較,並閱讀ANY目標分配型態的運作方式。

盡量減少 VM 之間的網路連線

如果您執行批次工作負載,並想將所有 VM 放在單一可用區,以降低 VM 對 VM 網路延遲和成本,且沒有特定可用區需求,請將群組的目標型態設為 ANY_SINGLE_ZONE。您也可以建立密集配置政策,並套用至 MIG,讓 MIG 中的 VM 彼此更靠近,且位於相同的網路基礎架構。

當您建立至少有一個 VM 的 MIG,以及沒有 VM 的 MIG 需要再次水平擴展時,ANY_SINGLE_ZONE 型態會根據您的預留項目、配額和硬體需求,挑選最佳可用區。

與 BALANCED 和 ANY 目標形狀類似,如果批次工作負載需要下列任一功能,ANY_SINGLE_ZONE 形狀就非常實用:

  • 搭載特殊硬體的 VM,例如特定 CPU 平台或 GPU 型號。群組會根據資源可用性,將執行個體部署至支援所要求硬體的可用區,並優先選擇有相符預留項目的可用區。
  • 先占 VM。您不必探索哪些可用區有可用的先占容量。群組會自動部署至具備先占容量的可用區。
  • 核心數量多的 VM。群組會盡可能取得大型機器,並優先選擇有相符預留項目的可用區。

您不必手動驗證特定硬體是否可在特定可用區使用。建立 MIG 時,請選取區域中的所有可用區,群組就會自動在有您所需硬體的可用區中部署執行個體。

如要進一步瞭解 ANY_SINGLE_ZONE 目標分配,請參閱目標型態比較,並參閱ANY_SINGLE_ZONE 目標分配型態的運作方式。

如果您有特定的可用區需求,且不希望 MIG 在任何情況下切換可用區,請改用可用區 MIG。

運作方式

本節說明每種目標分布形狀在下列情況下的運作方式:

  • 調整 MIG 大小時
  • 如果可用區暫時無法提供資源
  • 如果可用區故障

EVEN 分布形狀

如果將目標分配型態設為 EVEN,並啟用主動式重新分配功能,則無論資源可用性為何,區域性 MIG 中任何兩個可用區之間的代管執行個體數量差異不會超過 1 個。不過,如果可用區缺乏佈建實際 VM 的資源,代管執行個體可能無法執行。如果一開始建立執行個體失敗,MIG 會持續嘗試在同一個可用區建立執行個體。

調整分配型態為 EVEN 的 MIG 大小

如果群組的目標型態為 EVEN,則會選擇新增或刪除執行個體的可用區,以保留或趨向各可用區中代管執行個體的平均平衡。

舉例來說,下圖顯示群組如何新增及移除代管執行個體。

平均目標型態會在各可用區平均新增及移除執行個體。
調整具有 EVEN 分布的 MIG 大小

暫時無法使用資源的影響

建立群組或增加執行個體數量時,可用區中的資源可能會暫時無法使用。舉例來說,如果您要求先占執行個體或供應量有限的特殊硬體,在您提出要求時,可能無法取得這些資源。

為了維持各可用區的執行個體平均分配,群組會繼續嘗試在資源暫時無法使用的可用區建立 VM 執行個體。資源可用後,群組最終會取得完整數量的執行中 VM 執行個體。

舉例來說,下圖顯示如果其中一個可用區因資源暫時無法使用而無法滿足要求,MIG 會發生什麼情況。

如果目標型態為「平均」,當 VM 無法使用時,自動修復功能會持續嘗試建立 VM,直到 VM 可用為止。
暫時無法使用的資源對 EVEN 分布 MIG 的影響

不過,如果您在 MIG 中設定自動調度資源,MIG 就會在有可用容量的可用區中建立執行個體。這可能會導致執行個體在各可用區的分佈不均。這項行為與BALANCED 分布形狀的 MIG 類似。

可用區層級故障的影響

如果使用 EVEN (或 BALANCED) 目標分布形狀,可以佈建額外執行個體,盡可能降低可用區層級故障的影響。

如果發生可用區層級故障,部署至 3 個可用區且目標分配型態為 EVEN (或 BALANCED) 的區域性 MIG 可能會失去 1/3 的執行個體。您可以佈建更多 VM (其中 2/3 為負載所需),確保有足夠的容量來處理負載,以免發生可用區層級故障。

舉例來說,如果您需要 8 個執行個體來處理 3 個可用區的要求,並希望保護工作負載免於可用區層級故障,則應建立包含 12 個執行個體的區域群組。下圖顯示一個可用區故障時的情況。

如果目標型態為平均,超額佈建 MIG 可確保在可用區故障時,仍有足夠的 VM 數量。
可用區故障對 EVEN 分布 MIG 的影響

在這種情況下,EVEN 目標分配型態可與自動調度資源和負載平衡功能搭配使用。如果發生可用區層級故障,負載平衡器會開始將流量傳送至其餘兩個可用區中的執行個體,以容納來自故障可用區的流量。啟用自動調度資源功能後,MIG 會嘗試在有可用容量的可用區中建立執行個體,藉此保護工作負載。這可能會導致執行個體在各可用區的分佈不均。

如要進一步瞭解區域 MIG 如何與自動配置器搭配運作,請參閱「自動調度區域 MIG 資源」。

BALANCED 分布形狀

如果區域性 MIG 的目標型態為 BALANCED,可能無法在各可用區平均分配資源,尤其是當可用區沒有要求的資源時。

MIG 會優先在有可用資源的可用區建立 VM,以佈建要求的 VM 數量。如果一開始建立 VM 失敗,MIG 會自動嘗試在其他有可用容量的選定可用區中建立 VM。當資源可用時,分配方式與 EVEN 類似。在資源限制最嚴重的情況下,分布可能呈現任何形狀。

調整分配型態為 BALANCED 的 MIG 大小

增加群組人數

如果採用 BALANCED 目標型態,群組會根據您在 MIG 執行個體範本中指定的資源目前可用性,選擇要建立新執行個體的可用區。

  • 如果所有選定可用區的資源充足,群組在增加規模時,會維持在各可用區平均分配,與 EVEN 目標型態相同。
  • 如果可用區容量限制導致無法平均分配,群組會在有資源可用的可用區中建立執行個體,同時盡可能維持平衡。

舉例來說,如果您要求專門的 CPU 平台、GPU 模型或先占 VM,但這些資源並非在所有可用區都可用,您可能會發現容量限制和分布不均。

如果目標型態為「均衡」,系統會根據目前容量,盡可能在各可用區平均新增及移除執行個體。
調整具有 BALANCED 分布的 MIG 大小

縮減群組大小

縮減大小時,目標型態為 BALANCED 的區域性 MIG 會依下列順序移除執行個體,盡可能避免工作負載中斷:

  1. 未執行的執行個體,也就是因任何原因而無法建立、正在建立或自動修復的執行個體。
  2. 群組中 VM 數量較多的可用區執行個體,以達到平均分配的狀態。

暫時無法使用資源或可用區故障的影響

如果採用 BALANCED 目標分配型態,群組會將執行個體部署至有可用容量的可用區。在可用區容量暫時受限期間,這可能會導致執行個體在各可用區分布不均。

在這種情況下,如果 VM 執行個體數量最多的可用區發生故障,工作負載可能會失去大部分的服務能力。如果健康狀態良好的可用區暫時有容量限制,群組會嘗試在原始位置 (故障的可用區) 重新建立失敗的執行個體,但這項嘗試可能會失敗。

如要保護工作負載,避免發生這種極端情況,請採取下列做法:

  • 過度佈建區域 MIG 的大小,確保工作負載在可用區故障時有足夠的服務容量。
  • 在每個可用區預留足夠的資源,以因應尖峰負載、過度佈建,並維持各可用區的平均分配。這項策略有助於確保執行個體平均分布在各個可用區,在可用區發生故障時,盡可能減少容量損失。

下圖顯示暫時性可用區容量限制,以及可用區故障後可能發生的情況。

如果目標型態為平衡,但 VM 無法使用,分配結果可能會不平均。如果後續發生可用區故障,自動修復功能會持續嘗試建立故障的 VM,直到 VM 可用為止。
暫時無法使用資源,接著可用區故障,對具有 BALANCED 分配的 MIG 造成的影響

如果要求無法在區域中的任何可用區完成,群組會在資源暫時無法使用的可用區中排定 VM 建立作業。群組會繼續嘗試在原定建立排程執行個體的可用區中,建立排程執行個體。如果其他可用區比 VM 原本排定的可用區更快提供資源,群組也不會在這些可用區建立資源。如要手動在可用容量充足的可用區中排定新執行個體,請刪除建立失敗的代管執行個體,並將群組大小調整為目標大小。

如果 VM 建立失敗,您可以列出代管執行個體,查看對應代管 VM 執行個體中的錯誤訊息,或列出最近的錯誤。

如果可用區故障,BALANCED 目標分配型態可與自動調度資源和負載平衡功能搭配運作。為因應來自故障可用區的流量,負載平衡器會將流量傳送至其餘可用區中的執行個體。自動配置器會回應可用區中增加的使用率,並在健康狀態良好的可用區中自動建立容量。詳情請參閱「自動調度區域 MIG 資源」。

ANY 分布形狀

如果目標分配型態設為 ANY,區域性 MIG 會優先在有資源可用的可用區中建立代管執行個體,以取得資源。這表示所有執行個體可能建立在單一可用區,或平均分布於所有可用區,或介於這兩種情況之間。如果一開始建立執行個體失敗,MIG 會自動嘗試在其他有可用容量的所選可用區中建立執行個體。

調整分配型態為 ANY 的 MIG 大小

增加群組人數

當您增加群組大小時,群組會選擇任何有可用容量的可用區。

如果一或多個可用區中有相符的預留項目,群組會優先使用這些預留項目。不過,如果縮減群組大小,可能需要幾分鐘的時間,已使用的預留項目才會再次開放使用。在這段期間,先前使用的預留項目尚無法使用,如果您增加群組大小,且沒有相符的預留項目,則群組會在有可用資源的可用區中建立 VM 執行個體。

縮減群組大小

縮減群組大小時,群組會按照下列順序刪除 VM 執行個體:

  1. 因任何原因而未執行的 VM
  2. 尚未更新至預期版本的 VM
  3. VM 選擇方式不確定

如要縮減特定可用區的群組規模,或移除特定 VM 執行個體 (例如已完成工作的 worker),可以從群組中刪除特定執行個體。

暫時無法使用資源的影響

如果將目標分配型態設為 ANY,群組會在有要求資源的可用區中排定 VM 執行個體建立作業,並避開資源暫時無法使用的可用區。

如果要求無法在區域中的任何可用區完成,群組會在資源暫時無法使用的可用區中排定 VM 建立作業。群組會持續嘗試在原先排定建立執行個體的可用區中,建立排定的執行個體。如果其他可用區比 VM 原本排定的可用區更快提供資源,群組也不會在這些可用區建立 VM。您可以刪除未執行的代管執行個體,並將群組大小調整為目標大小,藉此在可用容量充足的可用區中,手動排定新的執行個體。

如果 VM 建立失敗,您可以列出代管執行個體,查看對應 VM 執行個體中的錯誤訊息,或列出最近的錯誤。

舉例來說,下圖顯示當可用區無法滿足要求時,區域群組如何排定執行個體。

如果目標分配型態設為「ANY」,群組會在有要求資源的可用區建立 VM,並避開資源暫時無法使用的可用區。
暫時無法使用的資源對 ANY 分布 MIG 的影響

可用區層級故障的影響

如果目標分配型態設為 ANY,群組可能會將大部分或所有執行個體部署在單一可用區。如果該可用區發生故障,群組中的大部分或所有執行個體可能會在故障期間無法使用。

如果發生可用區層級故障、資源暫時無法使用,或 VM 執行個體因任何原因而未執行,您可以刪除個別未執行的執行個體,然後將群組大小調整回必要大小,嘗試在有可用容量的可用區中取得替換執行個體。

如果目標分配型態設為 ANY,群組會在有要求資源的可用區建立 VM。如果因任何原因而無法使用資源,您可以縮減群組大小,然後再增加群組大小,嘗試在其他可用區取得 VM。
在資源暫時無法使用的情況下,刪除並重新建立採用 ANY 分配型態的 MIG 執行個體

ANY_SINGLE_ZONE 分布形狀

採用 ANY_SINGLE_ZONE 目標分配型態的區域性 MIG,會在建立群組中的第一個 VM 時,自動選取最佳可用區。建立第一個 VM 後,所有其他 VM 都會在同一個可用區建立。如果一開始建立 VM 失敗,MIG 會持續嘗試在相同可用區建立 VM。

只有在 MIG 縮減至零個 VM,並再次開始建立第一個 VM 時,才能選取其他可用區。

選擇最佳可用區

如果只有一個所選可用區支援群組的硬體需求,Compute Engine 就會選擇這個可用區。

如果有多個所選可用區符合群組的硬體需求,Compute Engine 會選擇有足夠可用資源,可容納所有區域性 MIG VM 的可用區,並優先選擇符合預留項目最多的可用區。

如果所選可用區都沒有足夠的可用資源或相符預留項目,無法容納所有 VM,Compute Engine 會選擇可用資源和相符預留項目最多的可用區,並優先選擇相符預留項目最多的可用區,盡可能建立最多 VM。即使其他可用區較早釋出資源,群組仍會繼續嘗試在同一個可用區建立其餘 VM。

調整分配型態為 ANY_SINGLE_ZONE 的 MIG 大小

增加群組人數

如果 MIG 已有 VM,且目標分配型態設為 ANY_SINGLE_ZONE,則在所有水平擴展作業中,MIG 會將新 VM 放在與現有 VM 相同的可用區。如果可用的資源或預留項目不足,無法容納所有額外的 VM,MIG 會盡可能建立。

如果 MIG 沒有 VM,則在水平擴展時,會選擇支援群組硬體需求且使用相符預留項目的最佳可用區。

縮減群組大小

縮減時,具有 ANY_SINGLE_ZONE 分配型態的區域性 MIG 會依下列順序移除 VM:

  • 系統會先移除不處於 RUNNING 狀態的 VM,盡可能避免干擾工作負載。未執行的 VM 是指因任何原因而無法建立,或正在建立或修復的 VM。
  • 未使用群組最新設定的 VM。
  • VM 選擇方式不確定

暫時無法使用資源的影響

如果區域性 MIG 的目標分配型態設為 ANY_SINGLE_ZONE,則所選可用區可能會有資源短缺的問題。

如果 MIG 所選可用區中的資源暫時無法使用,MIG 不會自動切換可用區。也就是說,在有足夠資源可用之前,水平擴展和更新程序可能會中斷。

可用區層級故障的影響

如果區域性 MIG 的目標分配型態設為 ANY_SINGLE_ZONE,則容易發生可用區故障。

如果託管區域性 MIG VM 的可用區發生故障 (這種情況相當少見),MIG 的所有 VM 可能都無法處理工作負載。

監控目標分配型態和可用區平衡

如要觀察目標分配型態 (EVEN、BALANCED、ANY 或 ANY_SINGLE_ZONE) 如何影響各可用區執行個體的即時分配情形,您可以查看特定 MIG 的執行個體分配情形,或多個 MIG 的匯總資料。

這項資訊有助於確認執行個體分布是否符合預期、監控容量變化或中斷情形,以及找出可能的調整方式,最佳化基礎架構。如需操作說明,請參閱「監控 MIG 中的執行個體分布情形」。

後續步驟