執行個體群組

您可以建立並管理虛擬機器 (VM) 的執行個體群組,如此即不必個別管理專案中的每個執行個體。Compute Engine 提供兩種不同的執行個體群組類型:代管執行個體群組與非代管執行個體群組。

代管執行個體群組

代管執行個體群組會使用執行個體範本來建立相同執行個體的群組。您可以將代管執行個體群組當做單一實體來進行管理。如果想對代管執行個體群組中的執行個體進行變更,可以直接對執行個體群組進行操作。因為代管執行個體群組包含相同的執行個體群組,所以能提供下列功能:

  • 當您的應用程式需要額外的運算資源,代管執行個體群組可以自動調整群組中執行個體數的資源配置。
  • 代管執行個體群組可以與負載平衡服務同時使用,以將流量分散給群組中的所有執行個體。
  • 如果群組中的執行個體停止運作、當機,或被執行個體群組以外的操作指令刪除,則代管執行個體群組會自動重新建立執行個體,讓執行個體繼續其處理工作。無論群組是否參考不同的執行個體範本,重新建立的執行個體都會使用與先前執行個體相同的名稱與執行個體範本
  • 代管執行個體群組可以自動辨識並重新建立群組中健康狀態不良的執行個體,以確保所有的執行個體都以最佳狀態運作。
  • managed instance group updater 可讓您輕鬆地將新版軟體部署至您的代管執行個體群組中的執行個體,並能控制部署的速度與範圍,以及服務中斷程度。

代管執行個體群組類型

您可以建立下列兩種類型的代管執行個體群組:

我們通常建議建立地區代管執行個體群組,而非建立區域代管執行個體群組,因為地區代管執行個體群組能讓您在多個區域之間分散應用程式的負載,而不會將您的應用程式限制在單一區域內。您也不必在不同區域之間管理多個執行個體群組。這種複製機制能防止單一區域故障時,整個執行個體群組發生區域失敗與意外狀況。如發生此情形,您的應用程式仍可繼續從在同一地區的另一個區域中運作的執行個體提供流量。

如果想避免跨區域通訊產生的些微延遲,或需要對每個區域中的群組大小進行完善的細部控制,請選擇區域代管執行個體群組。

代管執行個體群組和網路

根據預設,系統會將群組中的執行個體放置在 default 網路中,並從地區範圍隨機指派 IP 位址。或者,如果您需要限制群組的 IP 範圍,請建立自訂模式 VPC 網路和使用較小 IP 範圍的子網路,然後在執行個體範本中指定子網路。此操作可以簡化防火牆規則的建立。

建立代管執行個體群組後,一旦系統可以佈建執行個體,新的執行個體即會在群組中開始運作。此程序可能會花費大量時間,花費時間視群組中的執行個體數而定。 在您的代管執行個體群組中驗證執行個體狀態

代管執行個體群組和自動調度資源

代管執行個體群組支援自動調度資源,因此,您可以根據負載的增減,在代管執行個體群組中動態新增或移除執行個體。若要決定資源調度的方式,請啟用自動調度資源,並選擇自動調度資源政策。適用的自動調度資源政策包括:根據 CPU 使用率、負載平衡容量、Stackdriver Monitoring 指標,或根據佇列工作負載 (如 Google Cloud Pub/Sub) 進行資源調度。

因為自動調度資源需要從群組進行新增和移除,所以僅能使用具有代管執行個體群組的自動調度資源,因此,自動配置器才可以維護相同的執行個體。自動調度資源無法在非代管執行個體群組上運作,其中非代管執行個體群組包含不同的執行個體。

詳情請參閱自動調度執行個體群組資源

代管執行個體群組與自動修復功能

這類群組會主動讓執行個體保持可用 (即處於 RUNNING 狀態),以維持應用程式的高可用性,代管執行個體群組將自動重新建立未處於 RUNNING 狀態的執行個體。但是,依賴執行個體狀態可能是不夠的。您可能想在應用程式停止運作、當機或記憶體耗盡時重新建立執行個體。

以應用程式為基礎的自動修復功能依賴健康狀態檢查訊號來改善應用程式的可用性,健康狀態檢查可偵測應用程式特定問題,例如停止運作、當機或超載。如果健康狀態檢查確定執行個體的應用程式失敗,群組會自動重新建立該執行個體。

健康狀態檢查

用於監控代管執行個體群組的健康狀態檢查與用於負載平衡的健康狀態檢查類似,但行為上有些許差異。負載平衡健康狀態檢查可協助流量遠離無回應的執行個體,並導向健康狀態良好的執行個體;這些健康狀態檢查不會使 Compute Engine 重新建立執行個體。另一方面,代管執行個體群組健康狀態檢查會主動傳送訊號,以在執行個體變為 UNHEALTHY 時予以刪除及重新建立。

在大多數情況下,請針對負載平衡和自動修復分別使用不同的健康狀態檢查。用於負載平衡的健康狀態檢查可以也應該更為嚴格,因為這些健康狀態檢查將決定執行個體是否接收使用者流量。由於客戶可能依賴您的服務,因此您勢必會想要快速掌握無回應的執行個體,以在必要時重新導向流量。相對來說,用於自動修復的健康狀態檢查將使 Compute Engine 主動替換失敗的執行個體,因此這類健康狀態檢查應比負載平衡健康狀態檢查保守。

自動修復行為

自動修復功能重新建立執行個體時,會使用用來建立 VM 執行個體的原始執行個體範本 (不一定是代管執行個體群組中的目前執行個體範本)。例如,如果 VM 執行個體使用 instance-template-a 建立,然後您將代管執行個體群組更新為在 OPPORTUNISTIC 模式下使用 instance-template-b,則自動修復功能仍會使用 instance-template-a 重新建立執行個體。這是因為自動修復重新建立不是使用者起始的,因此 Compute Engine 不會假設 VM 執行個體應使用新範本。如果您要套用新範本,請參閱變更代管執行個體群組的執行個體範本一文。

並行自動修復執行個體數小於代管執行個體群組大小。如果自動修復政策不符合工作負載、防火牆規則設定有誤,或者存在網路連線或基礎架構問題,導致將所有健康狀態良好的執行個體錯誤識別為健康狀態不良,這樣可確保群組執行執行個體子集。但是,如果區域代管執行個體群組只有一個執行個體,或地區代管執行個體群組中的每個區域只有一個執行個體,自動修復功能將在執行個體變為健康狀態不良時重新建立。

依照 autoHealingPolicies[].initialDelaySec 屬性指定,自動修復不會在執行個體初始化期間重新建立 UNHEALTHY 執行個體。如果執行個體正在啟動中,這個設定會延遲自動修復,使系統無法進行檢查,以避免過早重新建立執行個體的可能性。當執行個體的 currentActionVERIFYING 時,初始延遲計時器會啟動。

自動修復功能與磁碟

根據執行個體的範本對其進行重新建立時,自動修復程式會以不同的方式處理不同類型的磁碟。一些磁碟設定可能會導致自動修復程式在嘗試重新建立代管執行個體時失敗。

類型 autodelete 自動修復作業期間的行為
新永久磁碟 true 系統會如執行個體範本所指定,重新建立磁碟。重新建立磁碟及其執行個體時,寫入該磁碟的任何資料都會遺失。
新永久磁碟 false 舊磁碟會被卸離,但仍保持可用。但是,VM 執行個體重新建立會失敗,因為 Compute Engine 無法重新建立現有磁碟。
現有的永久磁碟 true 舊磁碟會遭到刪除。VM 執行個體重新建立會失敗,因為 Compute Engine 無法將刪除的磁碟重新連結到執行個體。
現有的永久磁碟 false 系統會如執行個體範本所指定,重新連結舊磁碟。磁碟中的資料會保留。但是,針對現有讀寫磁碟,代管執行個體群組最多只能擁有一個 VM,因為在讀寫模式下,單一永久磁碟無法連結至多個執行個體。
新的本機 SSD 系統會如執行個體範本所指定,重新建立磁碟。重新建立或刪除執行個體時,本機 SSD 中的資料會遺失。

自動修復程式不會重新連結未在執行個體範本中指定的磁碟,例如建立 VM 之後您手動連結至 VM 的磁碟。

如要保留寫入磁碟的重要資料,請採取預防措施,例如:

  • 為一般永久磁碟拍攝快照

  • 將資料匯出至其他資源,例如 Cloud Storage。

如果執行個體有您要保留的重要設定,Google 也建議您在執行個體範本中使用包含您需要之任何自訂設定的自訂映像檔,如此一來,執行個體重新建立時,代管執行個體群組就會使用您指定的自訂映像檔。

更新代管執行個體群組

您可以輕鬆地將新版軟體部署至您的代管執行個體群組中的執行個體。系統會自動針對您的規則推出更新:您可以控制更新的速度與範圍,進而控制應用程式的中斷狀況。您可以選擇執行部分允許進行初期測試的推出項目。請參閱更新代管執行個體群組一文。

非代管執行個體群組

非代管執行個體群組為不同執行個體的群組,可任意從群組新增和移除。非代管執行個體群組無提供自動調度資源、捲動更新支援或執行個體範本的使用,所以 Google 建議儘可能建立代管執行個體群組。請僅在需要對現有設定或不同執行個體群組套用負載平衡時,才使用非代管執行個體群組。

如需建立不使用執行個體範本的不同執行個體群組,請參閱非代管執行個體群組

執行個體群組和負載平衡

您需要為 Google Cloud Platform 上提供的所有負載平衡設定指定後端 (執行個體群組、目標集區網路端點群組),以處理從負載平衡器後端服務分散出的流量。

對於 HTTP(S)、內部、TCP Proxy 與 SSL Proxy 負載平衡,您可以將執行個體群組指派給後端服務。後端服務為後端管理的集中式服務,負責管理處理使用者負載平衡器要求的執行個體。每個後端服務都包含一或多個後端,而每個後端都可以包含一個執行個體群組。因此,後端服務知道可以使用哪個執行個體,或是執行個體能夠處理的流量,以及目前處理中的流量為多少。您可以將代管或非代管執行個體群組指派給後端服務。

對於網路負載平衡,您需要將個別 VM 執行個體新增至目標集區,或指派一或多個代管執行個體群組至目標集區,以讓伺服器將執行個體群組中的所有執行個體新增至指定的目標集區。

如要進一步瞭解不同的負載平衡設定,請參閱負載平衡文件

後續步驟

本頁內容對您是否有任何幫助?請提供意見:

傳送您對下列選項的寶貴意見...

這個網頁
Compute Engine 說明文件