零設定工具簡化了資訊收集,例如在某個名稱空間中執行了多少個 pod。
最近我在紐約的 O'Reilly Velocity 就 Kubernetes 應用故障排除的主題發表了演講,並且在積極的反饋和討論的推動下,我決定重新審視這個領域的工具。結果,除了 kubernetes-incubator/spartakus 和 kubernetes/kube-state-metrics 之外,我們還沒有太多的輕量級工具來收集資源統計資料(例如名稱空間中的 pod 或服務的數量)。所以,我在回家的路上開始編寫一個小工具 —— 創造性地命名為 krs
,它是 Kubernetes Resource Stats 的簡稱 ,它允許你收集這些統計資料。
你可以通過兩種方式使用 mhausenblas/krs:
提醒你,它還在早期,並且還在開發中。但是,krs
的 0.1 版本提供以下功能:
目前,你需要安裝並設定 kubectl
,因為 krs
依賴於執行 kubectl get all
命令來收集統計資料。(另一方面,誰會使用 Kubernetes 但沒有安裝 kubectl
呢?)
使用 krs
很簡單。下載適合你平台的二進位制檔案,並按如下方式執行:
$ krs thenamespacetowatch# HELP pods Number of pods in any state, for example running# TYPE pods gaugepods{namespace="thenamespacetowatch"} 13# HELP deployments Number of deployments# TYPE deployments gaugedeployments{namespace="thenamespacetowatch"} 6# HELP services Number of services# TYPE services gaugeservices{namespace="thenamespacetowatch"} 4
這將在前台啟動 krs
,從名稱空間 thenamespacetowatch
收集資源統計資訊,並分別在標準輸出中以 OpenMetrics 格式輸出它們,以供你進一步處理。
krs 實戰截圖
也許你會問,Michael,為什麼它不能做一些有用的事(例如將指標儲存在 S3 中)?因為 Unix 哲學。
對於那些想知道他們是否可以直接使用 Prometheus 或 kubernetes/kube-state-metrics 來完成這項任務的人:是的,你可以,為什麼不行呢? krs
的重點是作為已有工具的輕量級且易於使用的替代品 —— 甚至可能在某些方面略微互補。
本文最初發表在 Medium 的 ITNext 上,並獲得授權轉載。