收集 Kubernetes 資源統計數據的新工具

零配置工具簡化了信息收集,例如在某個命名空間中運行了多少個 pod。

最近我在紐約的 O'Reilly Velocity 就 Kubernetes 應用故障排除的主題發表了演講,而且在積極的反饋和討論的推進下,我決定從新審視這個領域的工具。結果,除了 kubernetes-incubator/spartakus 和 kubernetes/kube-state-metrics 以外,咱們尚未太多的輕量級工具來收集資源統計數據(例如命名空間中的 pod 或服務的數量)。因此,我在回家的路上開始編寫一個小工具 —— 創造性地命名爲 krs,它是 Kubernetes Resource Stats 的簡稱 ,它容許你收集這些統計數據。linux

你能夠經過兩種方式使用 mhausenblas/krs:工具

直接在命令行(有 Linux、Windows 和 MacOS 的二進制文件),以及
在集羣中使用 launch.sh 腳本部署,該腳本動態建立適當的基於角色的訪問控制(RBAC) 權限。
提醒你,它還在早期,而且還在開發中。可是,krs 的 0.1 版本提供如下功能:spa

在每一個命名空間的基礎上,它按期收集資源統計信息(支持 pod、部署和服務)。
它以 OpenMetrics 格式公開這些統計。
它能夠直接經過二進制文件使用,也能夠在包含全部依賴項的容器化設置中使用。
目前,你須要安裝並配置 kubectl,由於 krs 依賴於執行 kubectl get all 命令來收集統計數據。(另外一方面,誰會使用 Kubernetes 但沒有安裝 kubectl 呢?)命令行

使用 krs 很簡單。下載適合你平臺的二進制文件,並按以下方式執行:blog

$ krs thenamespacetowatch
# HELP pods Number of pods in any state, for example running
# TYPE pods gauge
pods{namespace="thenamespacetowatch"} 13
# HELP deployments Number of deployments
# TYPE deployments gauge
deployments{namespace="thenamespacetowatch"} 6
# HELP services Number of services
# TYPE services gauge
services{namespace="thenamespacetowatch"} 4

這將在前臺啓動 krs,從名稱空間 thenamespacetowatch 收集資源統計信息,並分別在標準輸出中以 OpenMetrics 格式輸出它們,以供你進一步處理。ci

收集 Kubernetes 資源統計數據的新工具收集 Kubernetes 資源統計數據的新工具

krs 實戰截屏資源

也許你會問,Michael,爲何它不能作一些有用的事(例如將指標存儲在 S3 中)?由於 Unix 哲學。開發

對於那些想知道他們是否能夠直接使用 Prometheus 或 kubernetes/kube-state-metrics 來完成這項任務的人:是的,你能夠,爲何不行呢? krs 的重點是做爲已有工具的輕量級且易於使用的替代品 —— 甚至可能在某些方面略微互補。部署

本文最初發表在 Medium 的 ITNext 上,並得到受權轉載。get

相關文章
相關標籤/搜索