觀點 · 資訊分享

Google Cloud 託管執行個體群組可以「只監控、不自動修復」:想先保留故障現場的人多了一個正式開關

Compute Engine 在 6/26 宣布,託管執行個體群組(MIG)的健康檢查可以只負責監控,不再自動重建出問題的 VM。想先查原因、或自己寫修復流程的團隊,現在有正式支援的做法。

發布
2026-06-27
篇幅
約 4 分鐘 · 1,646 字
結構
7 節 + 3 題常見問題
標籤
#Google Cloud#Compute Engine#MIG#Autohealing
Google Cloud 託管執行個體群組可以「只監控、不自動修復」:想先保留故障現場的人多了一個正式開關

一句話看懂:Google Cloud 的託管執行個體群組(MIG)現在可以讓健康檢查「只監控、不動手」,不再自動重建出問題的 VM,6 月 26 日正式推出。

MIG 可以關閉自動修復資訊圖卡:健康檢查照跑,但出問題不再自動重建 VM,由你決定怎麼處理

先用白話講:MIG 與自動修復是什麼?

想像一間連鎖早餐店,有 10 台一模一樣的咖啡機。MIG 就是這個「機隊」,店長(Google Cloud)負責管理。每隔一陣子,店長會檢查每台機器能不能正常出咖啡;如果有一台壞了,店長會直接把它換成全新的。這個「壞了就換新」的動作就是自動修復(autohealing)。

大部分時候這很方便。但如果你想知道「這台機器為什麼會壞」,它被換掉之後,證據就沒了。

發生什麼事

Google Cloud 在 6 月 26 日的 Compute Engine 版本資訊寫道:在 MIG 裡,可以用健康檢查監控應用程式的健康狀態,而不觸發對不健康 VM 的修復;做法是關閉 autohealing。這項功能是正式推出(Generally available)。

官方文件說明了預設行為與使用情境:

  • 預設:MIG 會自動重建失敗的 VM;如果有設定應用程式健康檢查,連應用程式沒回應的 VM 也會被修復
  • 可以關閉修復的情境:排查失敗的 VM、實作自己的修復邏輯、只監控健康而不修復

兩個獨立的開關

設定 管什麼
預設的失敗動作 VM 本身失敗時,MIG 要不要修復
健康檢查失敗的動作 應用程式沒通過健康檢查時,MIG 要不要重建(autohealing)

兩個可以分開設定:例如你可以讓「VM 失敗」關閉修復,但保留「健康檢查失敗」的自動重建。反過來,只關掉 autohealing 並不會停止失敗 VM 的修復。

給開發者的技術細節

以下指令取自 Google Cloud 目前的文件,實際使用前請以文件為準。

只關閉 autohealing(健康檢查照跑,不重建):

gcloud compute instance-groups managed update MIG_NAME \
  --action-on-vm-failed-health-check=do-nothing \
  --zone=ZONE

關閉整個 MIG 的預設修復,但保留 autohealing:

gcloud compute instance-groups managed update MIG_NAME \
  --default-action-on-vm-failure=do-nothing \
  --action-on-vm-failed-health-check=repair \
  --zone=ZONE
  • 區域型 MIG 把 --zone 換成 --region
  • 用 REST API 的話,設定在 instanceLifecyclePolicy 的 defaultActionOnFailure 與 onFailedHealthCheck
  • 限制:如果 MIG 有設定自動調整規模(autoscaling),或有被暫停或停止的 VM,就不能用 defaultActionOnFailure 設成 DO_NOTHING 來關閉修復

我的看法

這個功能的價值在於「保留現場」。很多人遇過的情況是:服務偶爾出問題,等你登入查看時,自動機制已經把那台機器換掉,連 log 都跟著消失,只能靠猜。有個正式支援的開關,讓團隊在查問題的時間窗口內暫停重建,是很實用的。

但我不建議平常就關掉。自動修復本來就是 MIG 最重要的價值之一,關掉之後出問題要靠人處理,半夜出事就沒人替你換機器。比較好的做法是:平常保持預設,要查特定問題時才暫時關閉,查完記得打開,或搭配警示通知,確保出事時有人知道。

名詞小辭典

  • MIG(Managed Instance Group,託管執行個體群組):由同一份範本建立的一群 VM,由 Google Cloud 負責維持數量與健康。
  • Autohealing(自動修復):MIG 用健康檢查發現應用程式沒回應,就把那台 VM 重建。
  • 健康檢查(Health check):定期探測應用程式是否能正常回應的機制。
  • GA(Generally Available):功能正式推出,可以放心用在正式環境。

資料來源

常見問題

MIG 與 autohealing 是什麼?
MIG(Managed Instance Group)是一群由同一份範本建立、自動管理的 VM。autohealing 是指 MIG 用健康檢查偵測應用程式是否正常,不正常就把那台 VM 重建,確保整組服務維持健康。
為什麼會想關掉自動修復?
官方文件列出三種情境:想保留出問題的 VM 來排查、想實作自己的修復邏輯,或只想監控應用程式健康而不要自動動手。自動重建會把那台機器的狀態清掉,原因可能就查不到了。
關掉之後所有修復都停了嗎?
不一定。文件把「失敗的 VM 的修復」與「健康檢查失敗的 autohealing」分成兩個設定,可以分開開關。單獨關掉 autohealing 不會停止失敗 VM 的修復。
LINE