本文說明如何使用指令列和 GKE 維護資訊主頁,查看主機維護作業。
查看主機維護作業有助於減少工作負載中斷,特別是對於長時間執行的 GKE 叢集,其工作負載可能會因定期基礎架構中斷而中斷。
如要進一步瞭解 GKE 的主機維護作業,請參閱「瞭解如何在 GKE 執行主機維護作業」。
監控維護作業通知
在 VM 預定進行維護事件之前,Compute Engine 會向所有 VM 推播通知。這些通知會回報 Compute Engine 維護期間的開始時間。如果 VM 已排定近期維護作業,但尚未開始,GKE 會將 scheduled-maintenance-time 新增至節點標籤。
如要監控及偵測即將進行的維護事件,您必須查看 GKE 和 Compute Engine 的通知。
查看 Compute Engine 即將進行的維護作業
當節點及其基礎 VM 排定進行中斷性主機事件,以及這些事件生效時,Compute Engine 會發出通知。通知內容包括預計開始時間、事件類型和其他詳細資料。
查看 GKE 即將執行的維護作業
您可以監控 GKE 上特定機器類型的近期維護事件。下表列出支援的機器類型,以及各類型所需的最低 GKE 版本:
| 機型 | 最低 GKE 版本 |
|---|---|
| 已連接 GPU 或 TPU 的機型 | 1.31.1-gke.2008000 以上版本 |
| H4D 機型 | 1.32.6-gke.1060000 以上版本 |
c4a-highmem-96-metal |
1.35.0-gke.2232000 以上版本 |
| Titanium SSD 超過 18 TiB 的 Z3 機型 | 1.32.4-gke.1376000 以上版本 |
| Z4D 機型,連接超過 42 TiB 的 Titanium SSD | 1.36.3-gke.1244000 以上版本 |
| Z4M 機型,且附加超過 48 TiB 的 Titanium SSD,或任何使用 Cloud RDMA 的 Z4M 執行個體 | 1.36.3-gke.1767000 以上版本 |
如要查看即將進行的維護事件,請採取下列任一做法:
在節點層級查詢通知。如要進行這項操作,請執行下列指令:
kubectl get nodes -l cloud.google.com/scheduled-maintenance-time \ -L cloud.google.com/scheduled-maintenance-time輸出結果會與下列內容相似:
NAME STATUS SCHEDULED-MAINTENANCE-TIME <gke-accelerator-node-name> Ready 1733083200 <gke-accelerator-node-name> Ready 1733083200 [...]SCHEDULED-MAINTENANCE-TIME欄代表秒數,以 Unix 紀元時間格式顯示。如要查詢這些通知,請檢查執行個體是否有維護事件通知,在節點中繼資料層級進行查詢。
如果加速器最佳化機器家族支援進階維護,您可以存取
upcoming-maintenance端點,取得已排定和已開始的維護事件相關資訊。
查看主機維護的 Kubernetes 事件
在 GKE 1.35 以上版本中,系統會發出追蹤主機維護生命週期的 Kubernetes 事件。這些 Kubernetes 事件可讓您精細掌握排定的 Compute Engine 期間、進行中的作業,以及維修或取消等極端情況,直接在 Kubernetes 環境中監控中斷情形。
您可以使用標準 Kubernetes 工具或透過 Cloud Logging 查看這些事件:
如要查看近期維護事件,請使用下列
kubectl指令:kubectl get events -n kube-system --field-selector involvedObject.kind=NodeKubernetes 事件會在叢集中保留 60 分鐘,因此這個指令只會輸出每個節點的近期事件。
如要在 Cloud Logging 中查看事件,請按照下列步驟操作:
前往 Cloud de Confiance 控制台的「Logs Explorer」頁面:
請使用下列查詢:
resource.type="k8s_node" log_id("events") jsonPayload.metadata.annotations."maintenance.gke.io/category"="HostMaintenance"
維護生命週期事件
維護生命週期事件會在 Kubernetes 節點資源上發出。下表說明 GKE 在 Compute Engine 主機維護生命週期中發出的事件:
| 原因 | 說明 |
|---|---|
MaintenanceWindowScheduled |
已為節點排定 Compute Engine 主機維護期間 |
MaintenanceWindowCancelled |
節點上的 Compute Engine 主機維護期間已清除 |
MaintenanceWindowRescheduled |
原先排定的 Compute Engine 主機維護期間已變更,維護開始時間也已更新 |
CustomerTriggeredMaintenance |
Compute Engine 主機維護作業是透過 GKE 手動觸發 |
MaintenanceWindowStarted |
Compute Engine 主機維護作業已開始 |
TerminateOnHostMaintenance |
Compute Engine 發出終止信號 (TERMINATE_ON_HOST_MAINTENANCE) 時,會產生這項事件。如果啟用安全終止功能,GKE 會封鎖節點並排定 Pod 淘汰作業 (SIGTERM)。工作負載會根據機器級別,收到 5 到 60 分鐘的通知上限。 |
PodEvictionComplete |
所有 Pod 都已成功從節點中剔除 |
MaintenanceWindowCleared |
Compute Engine 主機維護作業已完成,節點已恢復就緒狀態。 |
事件酬載資訊
如果可以透過 Compute Engine 取得即將進行的維護事件相關資訊,則每個事件也會包含酬載,其中含有註解資料,內含下列資訊:
- Compute Engine 視窗詳細資料:包括
windowStartTime、windowEndTime和latestWindowStartTime。 - 維護中繼資料:事件發生時的維護週期狀態、維護原因 (原因可能列為
SCHEDULED或UNSCHEDULED),以及 Compute Engine 期間是否可以重新排程。 - Kubernetes 中繼資料:包括 Cluster_name、nodepool_name 和 node_name。
GKE 維護資訊主頁中的主機維護作業檢視畫面
GKE 維護資訊主頁提供主機維護作業的整合檢視畫面。資訊主頁會全面顯示叢集、節點集區和節點層級的維護活動。
資訊主頁是以 Observability Analytics 為基礎建構而成。顯示維護週期、節點狀態和歷來停機時間指標。
後續步驟
- 瞭解如何管理主機維護期間的節點中斷情形。
- 瞭解如何 對執行加速器工作負載的節點執行主機維護作業。
- 瞭解 GKE 維護期間和排除項目。