資源監控工具

為了擴充套件應用程式並提供可靠的服務,你需要了解應用程式在部署時的行為。你可以透過檢查容器、PodService 以及整個叢集的特性來評估 Kubernetes 叢集中的應用程式效能。Kubernetes 在每個級別都提供了關於應用程式資源使用的詳細資訊。這些資訊可以幫助你評估應用程式的效能,並找出可以消除的瓶頸以提高整體效能。

在 Kubernetes 中,應用程式監控不依賴於單一的監控解決方案。在新叢集上,你可以使用資源度量完整度量管道來收集監控統計資訊。

資源度量管道

資源度量管道提供了一組有限的度量指標,這些指標與叢集元件相關,例如 Horizontal Pod Autoscaler 控制器以及 `kubectl top` 工具。這些度量指標由輕量級、短期、記憶體中的 metrics-server 收集,並透過 `metrics.k8s.io` API 公開。

metrics-server 會發現叢集中的所有節點,並向每個節點的 kubelet 查詢 CPU 和記憶體使用情況。kubelet 充當 Kubernetes master 和節點之間的橋樑,管理機器上執行的 Pod 和容器。kubelet 將每個 Pod 轉換為其組成容器,並透過容器執行時介面從容器執行時獲取單個容器的使用統計資訊。如果你使用的容器執行時使用 Linux cgroups 和名稱空間來實施容器,並且容器執行時不釋出使用統計資訊,那麼 kubelet 可以直接查詢這些統計資訊(使用 cAdvisor 中的程式碼)。無論這些統計資訊如何到達,kubelet 都會透過 metrics-server 資源度量 API 公開聚合的 Pod 資源使用統計資訊。此 API 在 kubelet 的已認證只讀埠上的 `metrics/resource/v1beta1` 處提供。

完整度量管道

一個完整的度量管道可以讓你訪問更豐富的度量指標。Kubernetes 可以透過 Horizontal Pod Autoscaler 等機制,根據叢集的當前狀態自動擴充套件或調整叢集來響應這些度量指標。監控管道從 kubelet 獲取度量指標,然後透過實現 `custom.metrics.k8s.io` 或 `external.metrics.k8s.io` API,透過介面卡將它們公開給 Kubernetes。

Kubernetes 旨在與 OpenMetrics 配合使用,OpenMetrics 是 CNCF 可觀測性和分析 - 監控專案之一,它建立在 Prometheus 暴露格式之上,並對其進行了謹慎擴充套件,以幾乎 100% 向後相容的方式。

如果你瀏覽 CNCF Landscape,你會看到許多監控專案可以與 Kubernetes 配合使用,方法是**抓取**度量資料並使用這些資料來幫助你觀察叢集。選擇適合你需求的工具或工具組合取決於你自己。CNCF 可觀測性和分析領域包括開源軟體、付費軟體即服務以及其他商業產品的混合。

當你設計和實現一個完整的度量管道時,可以將這些監控資料回傳給 Kubernetes。例如,HorizontalPodAutoscaler 可以使用處理後的度量資料來計算工作負載元件需要執行多少個 Pod。

將完整的度量管道整合到 Kubernetes 實現中超出了 Kubernetes 文件的範圍,因為可能的解決方案範圍非常廣泛。

監控平臺的選擇很大程度上取決於你的需求、預算和技術資源。Kubernetes 不推薦任何特定的度量管道;有許多選項可供選擇。你的監控系統應該能夠處理 OpenMetrics 度量傳輸標準,並且需要選擇最適合你的基礎設施平臺整體設計和部署的系統。

下一步

瞭解其他除錯工具,包括

上次修改時間:2025 年 1 月 18 日太平洋標準時間凌晨 2:11:刪除監控連結 (75e18ae634)