瞭解如何監控 Google Distributed Cloud 連結網路方案部署作業的健康狀態、運作時間和升級作業,包括支援的工作負載。如要進一步瞭解如何設定監控功能及可用的指標,請參閱「記錄和指標」。
監控工作負載健康狀態和運作時間
您必須負責監控 Distributed Cloud Connected 部署項目中,執行中工作負載 (容器和虛擬機器) 的健康狀態和運作時間。
容器工作負載
如要監控部署的容器化工作負載健康狀態和運作時間,建議使用 Prometheus 指標解決方案。您可以設定 Prometheus,從 Pod 和 Service 抓取指標。Google 代管的系統服務會由 Google 自動監控及管理。如要進一步瞭解如何設定 Prometheus,請參閱「使用 Prometheus 收集指標」。
請使用下列重要指標監控容器工作負載。如果您使用 Prometheus,則須負責部署及管理 Kube State Metrics,以便公開工作負載的下列特定指標:
kube_pod_status_phase:監控處於Failed或Unknown階段的 Pod。kube_pod_container_status_waiting_reason:找出卡在CrashLoopBackOff或ImagePullBackOff的 Pod。container_cpu_usage_seconds_total和container_memory_working_set_bytes(來自 cAdvisor):監控資源消耗量,避免記憶體不足 (OOM) 問題。
虛擬機器工作負載
在 Distributed Cloud Connected 中,虛擬機器 (VM) 會在標準 Kubernetes Pod 內執行,通常前置字串為 virt-launcher-。如要監控 VM 的健康狀態,主要方法是檢查 VirtualMachine 自訂資源狀態,或監控 VM 內的應用程式指標。
使用基礎 virt-launcher Pod 指標做為次要指標,瞭解下列詳細資料:
- 資源用量:監控啟動器 Pod 的 CPU 和記憶體消耗量,確保 VM 有足夠的資源。
- Pod 階段:追蹤啟動器 Pod 階段,找出無法啟動或當機的 VM。
如要調整指派給 VM 的資源,請修改 VM 自訂資源規格。請勿直接修改基礎 virt-launcher Pod YAML,因為這些是由平台管理。任何直接變更都會遭到覆寫,或導致對帳錯誤。
如要排解 VM 卡在待處理狀態的問題,請參閱「排解虛擬機器卡在待處理狀態的問題」。
監控 Distributed Cloud 連結網路方案升級作業
使用 Cloud Monitoring 指標和 gcloud 指令,監控 Distributed Cloud connected 軟體升級的進度和狀態。升級作業由 Google 排定及執行。監控功能僅用於掌握資訊
和規劃工作負載遷移作業
如需詳細操作說明,瞭解如何檢查升級是否正在進行、監控升級狀態,以及排解升級失敗的問題,請參閱「排解軟體升級問題」。
監控本機儲存空間健康狀態
Distributed Cloud 連結網路方案會持續監控儲存裝置的健康狀態,並在需要更換實體硬碟時通知 Google。Google 會與您安排時間,前往現場更換故障的磁碟機。您可以使用 Kubernetes 條件快訊 (例如 DiskPressure) 監控儲存空間的健康狀態。
監控系統儲存空間健康度
您可以使用下列任一方法,監控 Distributed Cloud connected 系統儲存空間的健康狀態:
Prometheus 搭配 Kube State Metrics (PromQL)。在叢集中部署及管理 Kube State Metrics,公開 Kubernetes 條件指標。
Cloud Monitoring 指標。根據匯出至 Cloud Monitoring 的主機層級指標,建立警告政策。
使用 Prometheus 監控系統儲存空間健康狀態
如要使用 Prometheus 搭配 Kube State Metrics (PromQL) 監控系統儲存空間健康狀態,請設定下列警告:
節點條件進入
DiskPressure狀態時,立即發出快訊:kube_node_status_condition{condition="DiskPressure",status="true"} == 1在磁碟使用率超過作業門檻時,主動在達到淘汰門檻前發出警告:
(1 - (node_filesystem_avail_bytes{mountpoint="/mnt/shared_lpvs"} / node_filesystem_size_bytes{mountpoint="/mnt/shared_lpvs"})) > THRESHOLD將
THRESHOLD替換為目標作業門檻,範圍為0.00~1.00。Google 建議將這個值設為0.85。
使用 Cloud Monitoring 監控系統儲存空間健康狀態
如要使用 Cloud Monitoring 指標監控系統儲存空間健康狀態,請使用下列參數建立警告政策:
- 指標:
edgecontainer.googleapis.com/machine/disk/utilization - 範圍:這項指標專門回報節點本機系統分區檔案系統 (
/dev/mapper/shared_lpvs_encrypted) 的磁碟使用率。 - 門檻:設定磁碟使用率超過 85% 時的警告門檻。這項設定會在硬節點
DiskPressure事件發生前,偵測系統磁碟是否飽和。
監控工作負載儲存空間健康狀態
您可以根據工作負載使用的磁碟區模式,使用 Kubelet 磁碟區指標或直接使用應用程式層級遙測,監控工作負載儲存空間的健康狀態。
Filesystem音量模式。您可以使用 Prometheus 監控檔案系統磁碟區,方法是抓取下列 Kubelet 磁碟區指標:kubelet_volume_stats_capacity_byteskubelet_volume_stats_available_byteskubelet_volume_stats_used_byteskubelet_volume_stats_inodes_usedkubelet_volume_stats_inodes_free
Block音量模式。Kubelet 看不到原始區塊磁碟區。如要監控其健康狀態,您必須使用應用程式層級或 Symcloud Storage 指標。
多叢集監控
如果您管理許多 Distributed Cloud connected 叢集,建議使用 Cloud Monitoring 匯總及篩選指標。
使用資源標籤:匯出至 Cloud Monitoring 的指標包含識別來源的標籤。可用的標籤取決於資源類型:
如果是叢集和容器指標 (例如
k8s_container),重要標籤會包含下列值:project_id:託管叢集的 Google Cloud 專案。location: Google Cloud 叢集註冊的區域。cluster_name:叢集名稱。
如果是硬體指標 (例如
edgecontainer.googleapis.com/machine),索引鍵標籤會包含下列值:resource_container:與硬體相關聯的 Google Cloud 專案。location:註冊 Distributed Cloud connected 可用區的 Google Cloud 區域。machine_id:機器 ID。
硬體指標不直接包含
cluster_name標籤。
建立自訂資訊主頁:建立資訊主頁,顯示整個機群的重要健康指標。主要健康狀態指標包括連線能力、VM 狀態和資源用量。如要在單一圖表中顯示多個叢集的資料,請使用萬用字元或分組依據作業。
設定多叢集警告:設定適用於多個叢集的警告政策。舉例來說,您可以建立警告,在任何叢集中的任何機器失去連線能力時觸發。
警告策略
監控及維護 Distributed Cloud connected 是共同責任。本節說明 Google 快訊的用途,以及如何設定自己的警告政策。
Google 快訊的內容
Google 會持續監控底層基礎架構。系統會採取行動,並在下列情況下視需要通知您:
- 硬體故障:電源供應器故障、風扇故障、過熱或磁碟故障,例如磁碟達到備用門檻或壽命終止。Google 會持續監控內部儲存裝置的健康狀態,並在儲存裝置故障時觸發自動更換機制。
- 連線能力問題:Distributed Cloud connected 可用區與 Google Cloud之間的連線完全中斷。
- 控制層健康狀態:Kubernetes 控制層或 Google 代管系統服務發生故障。
- 升級失敗:自動升級程序卡住或失敗。
設定警告
在 Cloud Monitoring 或 Prometheus 中,自行設定警告政策,以便因應影響工作負載或本機環境的問題。
如要在 Cloud Monitoring 中設定快訊,請使用 Google Cloud 控制台或 Cloud Monitoring API。如需詳細操作說明,請參閱「建立警告政策」。您可以根據「記錄和指標」中記錄的指標建立警告政策。
如果您使用 Prometheus 收集指標,請在 Prometheus 設定中定義標準 Prometheus 警告規則。
您可以為下列問題設定快訊:
| 問題 | 說明 | 監控系統 | 詳細資料 |
|---|---|---|---|
| 工作負載停機時間 | Pod 或 VM 無法啟動或當機迴圈 | Prometheus | 如果是容器工作負載,請針對 kube_pod_status_phase 建立警告,偵測處於 Failed 或 Unknown 階段的 Pod。您也可以在 kube_pod_container_status_waiting_reason 等於 CrashLoopBackOff 或 ImagePullBackOff 時發出警示。 |
| Cloud Monitoring | 針對在 Pod 中執行的 VM 工作負載,請在 Cloud Monitoring 中使用標準 Kubernetes 容器指標設定警告,追蹤 virt-launcher Pod 的狀態。 |
||
| 工作負載資源耗盡 | 磁碟用量接近容量上限,或工作負載的記憶體或 CPU 用量偏高 | Prometheus | 如果是容器工作負載,請為 container_cpu_usage_seconds_total 和 container_memory_working_set_bytes (來自 cAdvisor) 設定門檻警告,找出資源用量接近上限的 Pod。 |
| Cloud Monitoring | 如要監控機器儲存空間,請監控機器磁碟使用率指標 edgecontainer.googleapis.com/machine/disk/utilization,偵測節點儲存空間何時接近容量上限。 |
||
| 區域網路問題 | 機器上的網路介面捨棄 | Cloud Monitoring | 監控機器網路運作指標 edgecontainer.googleapis.com/machine/network/up 是否為 false。 |
| 網際網路連線中斷 | Cloud Monitoring | 監控網路連線指標 edgecontainer.googleapis.com/machine/network/connectivity 是否為 false。 |
|
| 機器重新啟動 | 機器意外重新啟動或關機 | Cloud Monitoring | 使用 edgecontainer.googleapis.com/machine/uptime 和 edg/1.13.0/docs/ogleapis.com/machine/restart_count 指標設定警告。詳 ion 請參閱「排解機器重新啟動問題」。 |
| 系統儲存空間用盡 | 系統儲存空間用盡 | Cloud Monitoring | 使用 edgecontainer.googleapis.com/machine/disk/utilization/1.13.0/docs/設定快訊,詳情請參閱「監控系統儲存空間健康狀態」。 |
Distributed Cloud connected 硬體由 Google 管理。您無法透過 SSH 存取機器,也無法控管主機作業系統。如果系統根據機器層級指標 (例如網路連線或重新啟動) 發出警示,您只能檢查實體電源、纜線、區域網路和防火牆設定,或將問題提報給 Google 支援團隊。