本頁說明如何在支援的 Compute Engine 執行個體上,手動啟動主機維護事件。這項功能可讓您啟動維護事件,控管執行個體維護作業的時間。如果工作負載可能會受到效能降低或停機影響,且您需要維護期間在特定時間開始,這項功能就非常實用。
手動啟動維護事件時,主機維護作業會立即開始。您無法指定維護事件的開始日期或時間。如果未使用這項功能,維護事件就會在即將進行維護通知中顯示的時間發生。
如要先測試應用程式如何處理維護作業,可以模擬維護作業。
限制
您可以手動啟動主機維護事件,適用於使用下列機器類型的執行個體:
加速器最佳化機器系列:
運算最佳化機器系列:
一般用途機器家族:
記憶體最佳化機器系列:
儲存空間最佳化機器系列:
事前準備
-
如果尚未設定驗證,請先完成設定。
驗證可確認您的身分,以便存取 Google Cloud 服務和 API。如要從本機開發環境執行程式碼或範例,請選取下列其中一個選項,向 Compute Engine 進行驗證:
選取這個頁面上的分頁,瞭解如何使用範例:
gcloud
-
安裝 Google Cloud CLI。 完成後,執行下列指令來初始化 Google Cloud CLI:
gcloud init若您採用的是外部識別資訊提供者 (IdP),請先使用聯合身分登入 gcloud CLI。
-
- 設定預設地區和區域。
REST
如要在本機開發環境中使用本頁的 REST API 範例,請使用您提供給 gcloud CLI 的憑證。
安裝 Google Cloud CLI。
若您採用的是外部識別資訊提供者 (IdP),請先使用聯合身分登入 gcloud CLI。
詳情請參閱 Google Cloud 驗證說明文件中的「使用 REST 進行驗證」。
必要的角色
如要取得管理 VM 維護作業所需的權限,請要求管理員授予您專案的「Compute 執行個體管理員 (v1) 」(roles/compute.instanceAdmin.v1) IAM 角色。如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和組織的存取權」。
這個預先定義的角色具備管理 VM 維護作業所需的權限。如要查看確切的必要權限,請展開「Required permissions」(必要權限) 部分:
所需權限
如要管理 VM 維護作業,必須具備下列權限:
-
如要取得運算執行個體的相關資訊:
compute.instances.get
手動啟動主機維護事件
Compute Engine 會透過多種方式傳送即將進行維護作業的通知。您可以根據通知中的資訊,判斷何時能手動啟動維護事件。
查看通知資訊
您可以透過下列方式查看維護事件通知:
如果主機維護事件通知包含 canReschedule=True 和 maintenanceStatus=Pending,您可以選擇在指定時間開始維護,或等待維護事件在 windowStartTime 指定的時間發生。
如果沒有通知,且您嘗試手動啟動維護事件,系統會顯示以下訊息:
There is no reschedulable upcoming maintenance.
這則訊息表示系統未排定任何維護作業,因此您不需要採取任何行動。
開始維護事件
您可以選擇開始主機維護作業的時間,不必等待排定的時間。使用 Google Cloud CLI 或 REST 觸發維護事件,事件會立即啟動。
gcloud
如要啟動維護事件,請使用 compute instances perform-maintenance 指令。輸入指令後,主機維護作業就會立即開始。
gcloud compute instances perform-maintenance INSTANCE_NAME \
--zone=ZONE
更改下列內容:
INSTANCE_NAME:運算執行個體的名稱。ZONE:執行個體所在的可用區。
回覆內容大致如下:
resourceStatus:
upcomingMaintenance:
canReschedule: false
latestWindowStartTime: '2025-01-15T19:57:17Z'
maintenanceStatus: ONGOING
type: SCHEDULED
windowEndTime: '2025-01-15T23:57:11Z'
windowStartTime: '2025-01-15T19:57:16Z'
在回應中,canReschedule 會設為 false,而 maintenanceStatus 則會設為 ONGOING,表示主機維護作業正在進行中。
REST
如要啟動維護事件,請使用 instances.performMaintenance 方法建構 POST 要求。
POST: https://compute.googleapis.com/compute/v1/projects/PROJECT_NAME/zones/ZONE/instances/INSTANCE_NAME/performMaintenance
更改下列內容:
PROJECT_NAME:專案名稱ZONE:運算執行個體所在的可用區INSTANCE_NAME:執行個體名稱
回應的形式如下所示:
upcomingMaintenance:{
"canReschedule":false
"latestWindowStartTime": "2023-12-01T19:00:01Z"
"maintenanceStatus":"ONGOING"
"type":"SCHEDULED"
"windowEndTime": "2023-12-01T22:00:00Z"
"windowStartTime": "2023-12-01T19:00:00Z"
}
在回應中,canReschedule 會設為 false,而 maintenanceStatus 則會設為 ONGOING,表示主機維護作業正在進行中。
後續步驟
- 瞭解如何模擬主機維護事件。
- 瞭解如何取得即時遷移通知。
- 瞭解如何設定主機維護通知的快訊。