部分作業對代管執行個體保留狀態的影響

請參閱下列各節,瞭解各種設定、代管執行個體群組 (MIG) 動作或執行個體生命週期事件,如何影響保留狀態代管執行個體 (位於具狀態 MIG 中):

自動修復功能如何處理保留狀態

當虛擬機器 (VM) 執行個體停止運作或不正常時,自動修復功能會重新建立 VM,並保留您設定項目的狀態:

  • MIG 會保留有狀態的磁碟和 IP 位址,並在重新建立 VM 時重新附加。
  • MIG 會保留在每個執行個體設定中設定的有狀態中繼資料,並在重新建立 VM 時設定該資料。

為避免有狀態的開機磁碟損毀,導致 VM 執行個體重新建立失敗,請讓開機磁碟保持無狀態,這樣自動修復功能就能使用原始映像檔從頭重新建立該磁碟。

更新執行個體時如何處理保留狀態

更新執行個體時,MIG 會維護執行個體的保留狀態 (磁碟、IP 位址、中繼資料):

  • 如果 VM 執行個體在更新期間重新建立或重新啟動,MIG 會保留有狀態的磁碟和 IP 位址,並重新附加。
  • MIG 會保留在每個執行個體設定中設定的有狀態中繼資料,並在更新期間將其設定在執行個體上。

設定新的執行個體範本時,您必須定義在具狀態政策中指定的所有磁碟。您無法設定新的執行個體範本,並省略有狀態政策中定義的磁碟。這有助於防止意外刪除有狀態的磁碟。

如要從 MIG 移除有狀態磁碟 (這些磁碟是在有狀態政策中定義),請按照下列程序操作:

  1. 從有狀態政策中移除磁碟設定。
  2. (選用) 如要保留磁碟,請從 VM 執行個體卸離磁碟。
  3. 推出不再定義磁碟的新執行個體範本。

您無法將有狀態磁碟更新為新映像檔,因為更新期間必須保留這些磁碟,而更新為新映像檔需要重新建立磁碟。

Google 建議您讓開機磁碟和任何含有二進位檔或暫時檔案的磁碟保持無狀態,同時將資料保留在有狀態的磁碟上。這類設定支援下列行為:

  • 您可以輕鬆自動地將開機磁碟和含有二進位檔的磁碟,更新為包含新版本和安全性修補程式的較新映像檔。您可以啟用自動更新功能,也可以手動更新執行個體,藉此重新建立這類無狀態磁碟,同時將資料完整保留在個別的有狀態磁碟上。
  • 在將其他更新項目推出至執行個體時,您可以保留有狀態磁碟上的資料。

您可以將開機磁碟設定為具備狀態,例如託管將二進位檔和資料保留在同一磁碟的舊版應用程式。這樣一來,您就能將應用程式移至 MIG,享有自動修復功能。不過,在這種情況下,您必須自行更新軟體和作業系統,例如使用套件管理工具 (如 Debian 系統上的 apt) 更新個別套件,或是使用設定管理工具。

如果您只設定了自訂執行個體名稱,但未設定具狀態的磁碟或中繼資料,則可以使用自動輪替更新。如要自動進行輪替更新,您必須將更新程式的替代政策設為 RECREATE。您無法使用 SUBSTITUTE 取代方法,自動更新有狀態 MIG 中的執行個體,因為這個方法會將每個現有 VM 替換為名稱不同但狀態保留的新 VM。

群組大小調整對保留狀態的影響

減少群組大小

Google 不建議縮減有狀態 MIG 的大小,因為 MIG 會選取要刪除的 VM 執行個體,且可能會選取您需要保留的 VM。您可以刪除不再需要的特定執行個體,以受控方式移除 MIG VM 執行個體。

如果縮減 MIG 大小,MIG 會刪除所有額外的 VM 執行個體,以及相關聯的保留狀態。為避免發生這種情況,您可以設定 MIG,在永久刪除 VM 執行個體時,分離並保留有狀態的磁碟和 IP 位址。有狀態的中繼資料會與保留狀態一併刪除。 詳情請參閱刪除執行個體對保留狀態的影響

增加群組大小

增加有狀態 MIG 的大小時,群組會根據目前的執行個體範本建立 VM,並自動產生名稱 (基本執行個體名稱 + 尾碼)。您可以在對應受管理執行個體的 preservedStateFromPolicy 中,查看套用的具狀態設定。MIG 建立執行個體後,您可以在這些執行個體的個別執行個體設定中,定義具狀態的中繼資料和額外的具狀態磁碟或 IP 位址。

您可以手動建立執行個體,並選擇自訂執行個體名稱,以及提供每個執行個體的有狀態中繼資料、IP 位址和磁碟,藉此啟動執行個體的狀態,進而增加群組大小。

刪除執行個體對保留狀態的影響

在下列情況下,系統會永久刪除 MIG 中的 VM:

  • 您縮減群組大小,而 MIG 選擇刪除這個 VM 執行個體,或
  • 刪除整個群組,或
  • 您從 MIG 中刪除執行個體

永久刪除 VM 時,MIG 也會刪除對應的每個執行個體設定和受管理執行個體,包括保留的狀態設定。

永久刪除 VM 會導致所有具狀態的中繼資料鍵值組合遺失。

您可以為每個資源設定 autoDelete 旗標,決定在永久刪除執行個體時,要保留還是刪除有狀態磁碟和 IP 位址,設定位置可以是有狀態政策,也可以是每個執行個體的設定。這個標記支援兩個選項:

  • NEVER:(預設值)。MIG 絕不會刪除磁碟。
  • ON_PERMANENT_INSTANCE_DELETION:永久刪除執行個體時,MIG 會一併刪除磁碟。

自動修復、更新或重新建立執行個體時,MIG 不會刪除有狀態資源。

在下列範例中,MIG 只有一個 VM node-1,且保留狀態是由每個執行個體的設定定義。保留的狀態包括兩個磁碟 (藍色和綠色) 和 id:xyz273 中繼資料。如果將 MIG 大小調整為零,MIG 會觸發執行個體的永久刪除作業 node-1,導致下列影響:

  • MIG 會刪除受管理執行個體及其保留狀態設定。
  • MIG 會刪除執行個體的個別執行個體設定。
  • MIG 會刪除實際的 VM 執行個體資源。
  • 由於 VM 執行個體及其保留狀態設定已刪除,中繼資料 id:xyz273 會遺失。
  • 由於這個磁碟的每個執行個體設定都有 autoDelete: ON_PERMANENT_INSTANCE_DELETION,因此系統會刪除有狀態的藍色磁碟。
  • 有狀態的綠色磁碟已卸離,因為這個磁碟的每個執行個體設定都有 autoDelete:NEVER

從有狀態 MIG 刪除執行個體。

放棄執行個體對保留狀態的影響

從 MIG 捨棄 VM 執行個體時,VM 的狀態 (包括具狀態中繼資料、IP 位址和磁碟) 會保留在 MIG 外部的執行個體上。由於 VM 不再由 MIG 管理,MIG 會刪除對應的每個執行個體設定和代管執行個體,包括執行個體的保留狀態設定。

在下列範例中,VM node-1 保留了狀態,該狀態是由有狀態政策 (藍色磁碟) 和每個執行個體的設定 (綠色磁碟和中繼資料 id:xyz273) 所定義。如果您從 MIG 捨棄執行個體 node-1,保留的狀態會發生以下情況:

  • 獨立 VM 執行個體 node-1 會保留狀態:所有磁碟仍會附加,且中繼資料 id:xyz273 仍會設定在 VM 上。
  • MIG 會刪除受管理執行個體及其保留狀態設定。
  • MIG 會刪除執行個體的個別執行個體設定。
  • 有狀態政策適用於 MIG 中的所有執行個體,因此不會變更。

從有狀態 MIG 捨棄執行個體。

區域群組如何處理保留狀態

有狀態區域 MIG 處理執行個體保留狀態的方式與區域 MIG 相同,但區域 MIG 會在多個區域中建立 VM 執行個體:

  • 建立執行個體時,區域 MIG 會將 VM 平均分配到區域中的各個可用區,以便在發生區域層級的故障時,最大化應用程式的可用性。
  • 對於現有執行個體,有狀態區域 MIG 無法自動重新分配或跨區域移動現有 VM,因為保留的狀態會儲存在特定區域,無法移動。因此,具備狀態的區域性 MIG 僅支援 執行個體重新分配類型設定 NONE

意見回饋

我們想要瞭解您的用途、難題和有狀態 MIG 的相關意見。請前往以下網址,並與我們的團隊分享您的寶貴意見:mig-discuss@google.com

後續步驟