資源監控工具

為了擴充應用程式並提供可靠的服務,您需要瞭解應用程式在部署時的行為。您可以透過檢查容器、Pod服務,以及整體叢集的特性來檢視 Kubernetes 叢集中的應用程式效能。Kubernetes 提供應用程式在每個層級的資源使用率詳細資訊。這些資訊可讓您評估應用程式的效能,以及可以移除瓶頸以改善整體效能的位置。

在 Kubernetes 中,應用程式監控不依賴單一監控解決方案。在新的叢集上,您可以使用資源指標完整指標管線來收集監控統計資料。

資源指標管線

資源指標管線提供與叢集元件相關的有限指標集,例如水平 Pod 自動擴充控制器,以及 kubectl top 公用程式。這些指標由輕量級、短期、記憶體內metrics-server收集,並透過 metrics.k8s.io API 公開。

metrics-server 探索叢集上的所有節點,並查詢每個節點的 kubelet 以取得 CPU 和記憶體使用率。kubelet 作為 Kubernetes 主節點和節點之間的橋樑,管理在機器上執行的 Pod 和容器。kubelet 將每個 Pod 轉換為其組成的容器,並透過容器執行期介面從容器執行期擷取個別容器使用率統計資料。如果您使用的容器執行期使用 Linux cgroup 和命名空間來實作容器,且容器執行期未發布使用率統計資料,則 kubelet 可以直接查閱這些統計資料(使用來自 cAdvisor 的程式碼)。無論這些統計資料如何到達,kubelet 隨後都會透過 metrics-server 資源指標 API 公開彙總的 Pod 資源使用率統計資料。此 API 在 kubelet 的已驗證和唯讀埠上的 /metrics/resource/v1beta1 提供服務。

完整指標管線

完整指標管線可讓您存取更豐富的指標。Kubernetes 可以透過使用水平 Pod 自動擴充器等機制,根據目前的狀態自動擴充或調整叢集以回應這些指標。監控管線從 kubelet 擷取指標,然後透過實作 custom.metrics.k8s.ioexternal.metrics.k8s.io API 的介面卡,將指標公開給 Kubernetes。

Kubernetes 旨在與 OpenMetrics 搭配使用,OpenMetrics 是 CNCF 可觀察性與分析 - 監控專案之一,建立在 Prometheus 公開格式之上並謹慎地擴充,幾乎 100% 向後相容。

如果您瀏覽 CNCF Landscape,您可以看到許多監控專案可以透過抓取指標資料並使用這些資料來協助您觀察叢集,以與 Kubernetes 搭配使用。您可以自行選擇適合您需求的工具。適用於可觀察性與分析的 CNCF Landscape 包含開放原始碼軟體、付費軟體即服務和其他商業產品的組合。

當您設計和實作完整指標管線時,您可以將監控資料提供回 Kubernetes。例如,HorizontalPodAutoscaler 可以使用處理過的指標來計算要為工作負載元件執行的 Pod 數量。

由於可能解決方案的範圍非常廣泛,因此將完整指標管線整合到 Kubernetes 實作中不在 Kubernetes 文件範圍內。

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

下一步

瞭解其他偵錯工具,包括

上次修改時間:2024 年 3 月 19 日下午 6:26 PST:Update resource-usage-monitoring.md (d77e68f2fd)