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


請參閱以下各節,瞭解在有狀態的 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) 更新個別套件,或是使用設定管理工具。

如果您只設定自訂執行個體名稱,而未設定有狀態磁碟或中繼資料,則可以使用自動逐步更新功能。如要自動進行滾動式更新,您必須將 Updater 的取代政策設為 RECREATE。您無法在有狀態的 MIG 中使用 SUBSTITUTE 取代方法自動更新執行個體,因為這個方法會將每個現有 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 會導致所有具狀態的中繼資料鍵值組合遺失。

您可以設定在永久執行個體刪除作業中,要保留還是刪除有狀態磁碟和 IP 位址,方法是在有狀態政策或個別執行個體設定中,為每個資源設定 autoDelete 旗標。這個標記支援兩個選項:

  • 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

後續步驟