關於 MIG 中的執行個體彈性

代管執行個體群組 (MIG) 的執行個體彈性功能可讓您為群組中的虛擬機器 (VM) 執行個體指定多個機型,而不限於單一機型。如果某個機型無法使用,MIG 可以根據目前的資源可用性,從清單中自動選取另一個相容的機型。這項彈性功能有助於提高資源取得率,特別是對於可使用不同機型運作的應用程式,以及需要大規模容量或高需求硬體的應用程式。

本文說明 MIG 的執行個體彈性運作方式和限制。如要瞭解如何設定 MIG 以使用執行個體彈性,請參閱「新增執行個體彈性」。

執行個體彈性

MIG 會根據您選取的執行個體範本建立所有 VM。執行個體範本會指定每個 VM 要使用的機型。有了執行個體彈性,您就能列出與應用程式相容的所有機型。

下圖比較使用單一機器類型的 MIG,以及使用執行個體彈性的 MIG。如圖片所示,具有單一機型的 MIG 會根據執行個體範本建立相同的 VM,而具有執行個體彈性的 MIG 則可建立具有不同機型和大小的 VM。

比較使用單一機型的 MIG 與使用執行個體彈性設定的 MIG

執行個體彈性設定的運作方式

根據預設,MIG 會使用執行個體範本中的單一機型建立所有 VM。您可以在 MIG 中設定多個機型,方法是在執行個體彈性政策 (instanceFlexibilityPolicy) 中設定執行個體選取項目 (instanceSelections)。

您也可以指定在不同 CPU 平台和架構 (x86 和 Arm 架構) 上執行的機型。如要使用對最低 CPU 平台或磁碟有不同需求的機器類型,請使用執行個體彈性政策,覆寫執行個體範本中的對應屬性。詳情請參閱「minCpuPlatformdisks 覆寫的運作方式」。

機型覆寫範例

如果工作負載可使用多種機器類型運作,您可以在單一 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"]
      }
    }
  }
  

由於硬體供應情形會隨時間變動,且除非使用預訂,否則無法保證特定硬體可用,因此應用程式必須能在任何列出的機型上執行。

執行個體選取項目也可以覆寫執行個體屬性,例如 minCpuPlatformdisks。詳情請參閱下節「執行個體選取覆寫的運作方式」。

minCpuPlatformdisks 覆寫的運作方式

在執行個體選取項目中,您可以指定其他執行個體屬性,例如最低 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 如何選取可用區

您可以在目標分配型態為 BALANCEDANYANY_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 會以與非自動調度資源代管執行個體群組:MIG 相同的方式選取機型,然後建立 VM。詳情請參閱本文的「代管執行個體群組:MIG 如何選取機型」一節。

  • 自動配置器縮減 MIG 時,MIG 會依下列方式選取要刪除的 VM:

    1. MIG 會優先刪除最能維持目標分配形狀的 VM。
    2. 如果您已設定等級,MIG 會優先刪除使用較低等級機器類型的 VM。
    3. 最後,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-32n2-standard-16

此外,為執行個體選取項目指定 minCpuPlatform,可確保 MIG 選取高效能的 CPU 平台。

順暢轉換至最新機型

您可以設定 MIG 執行個體彈性,優先採用最新一代的機器類型,同時將舊一代的機器類型做為容量備援。如要這麼做,請建立包含最新一代機器類型的執行個體選取項目,並指派較低的等級 (較高的偏好設定)。如果這些機器類型需要不同的磁碟設定,請使用這個執行個體選取項目中的磁碟覆寫,定義特定磁碟屬性。建立第二個包含舊一代機器類型的執行個體選取項目做為備援,並指派較高的等級 (較低的偏好設定)。

建立 MIG 時,請選取區域中的所有可用區,以及「ANY」目標分配型態。這項設定可確保 MIG 會先在區域中的所有可用區搜尋最新一代機器。如果 MIG 找不到足夠的最新一代容量,才會佈建舊一代機器,確保系統一律會滿足您要求的總容量,同時盡可能使用最新硬體。

限制

執行個體彈性有下列限制:

  • 可用區 MIG 不支援執行個體彈性設定。您可以改用單一可用區的區域性 MIG。

  • 執行個體彈性不支援下列 MIG 功能:

  • 覆寫 minCpuPlatformdisks 時,也適用下列限制:

    • 你必須啟用維修進度更新

    • 為現有執行個體選取項目設定 minCpuPlatformdisks 時,您也必須加入 machineTypes 欄位。如果沒有 machineTypes 欄位,作業會失敗並顯示錯誤。

    • 您無法將有狀態政策或每個執行個體的設定套用至透過執行個體選取項目覆寫的磁碟。

    • 只有可選擇本機 SSD 磁碟數量的機型,才能覆寫本機 SSD。-lssd 機型變體會自動附加本機 SSD 磁碟,因此無法覆寫。

    • 所有執行個體選取項目都必須指定專屬機型。舉例來說,您無法在一個選項中指定 n1-standard-2 CPU,同時在另一個選項中指定 Broadwell CPU。Skylake

  • 為確保在具有執行個體彈性的 MIG 中有效負載平衡自動調度資源,請使用效能相似的機器類型,例如 vCPU 數量相同。不過,「類似效能」不限於在不同系列中使用相同大小,因為新一代機器通常每個 vCPU 的效能較高,因此您可以混合使用不同 vCPU 數量 (例如混合使用 n1-standard-32n2-standard-28)。

    • Cloud Load Balancing 中,效能相近的機器類型可避免較小硬體過度使用,以及較快機器使用不足的情況。

    • 自動調度資源中,效能相似的機型可能會阻止新增或刪除效能最高的機型。

後續步驟