Kubernetes 開(kāi)源桌面監(jiān)控工具 - KubeScrape
KubeScrape 是一個(gè)開(kāi)源監(jiān)控工具,旨在幫助 Kubernetes 用戶跟蹤集群的健康狀況、查看實(shí)時(shí)指標(biāo)和查看結(jié)構(gòu),該應(yīng)用程序目前有 5 個(gè)直觀的頁(yè)面。
安裝
該應(yīng)用程序是一個(gè)桌面應(yīng)用程序,只需要從 github release 頁(yè)面(https://github.com/oslabs-beta/KubeScrape/releases)點(diǎn)擊下載與你操作系統(tǒng)兼容的可執(zhí)行文件,在本地運(yùn)行即可。
但是要使用該應(yīng)用程序需要滿足一些先決條件:
- (必須)首先必須在你的 Kubernetes 集群中安裝 Prometheus,并且提供了 node-exporter、kube-state-metrics 指標(biāo)數(shù)據(jù)。
- (必須)安裝了 Prometheus 實(shí)例后,需要在本地能夠通過(guò) 30000 端口訪問(wèn),這是因?yàn)槟壳?KubeScrape 是通過(guò)該端口進(jìn)行 API 調(diào)用的,后續(xù)會(huì)提供讓用戶輸入 Prometheus 地址的功能。
- (可選)如果配置了 Prometheus 的報(bào)警規(guī)則,KubeScrape 的 Alerts 選項(xiàng)卡會(huì)只顯示報(bào)警相關(guān)的信息。
我這里在 Kubernetes 集群中安裝了 Prometheus,并且有一個(gè) Service 暴露服務(wù):
? kubectl get svc -n kube-mon
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
prometheus ClusterIP 10.108.206.232 <none> 9090/TCP 45d
然后我可以在本地通過(guò) kubectl port-forward 將 Prometheus 服務(wù)暴露在 30000 端口上:
? kubectl port-forward service/prometheus 30000:9090 --address 0.0.0.0 --namespace=kube-mon
Forwarding from 0.0.0.0:30000 -> 9090
此外如果你沒(méi)有安裝相關(guān)的指標(biāo),可以通過(guò) https://github.com/annechanchan/KubeScrape_PrometheusManifests 倉(cāng)庫(kù)來(lái)輕松部署,包括報(bào)警規(guī)則。
特性
上面的需求滿足后,在本地直接打開(kāi) KubeScrape 應(yīng)用即可正常使用了,首頁(yè)提供了集群運(yùn)行狀況和一些重要的集群指標(biāo)信息概述:
點(diǎn)擊一個(gè)節(jié)點(diǎn)可以路由到節(jié)點(diǎn)詳細(xì)信息頁(yè)面,可以獲取有關(guān)該節(jié)點(diǎn)上正在運(yùn)行的 pod 信息:
同樣點(diǎn)擊 Pod 則可以路由到 Pod 的詳細(xì)信息頁(yè)面,在該頁(yè)面可以查看 CPU、內(nèi)存等資源的相關(guān)使用情況:
此外 Alerts 頁(yè)面還會(huì)顯示 Prometheus 中處于 Firing 狀態(tài)的報(bào)警規(guī)則,按照?qǐng)?bào)警名稱進(jìn)行分組:
Visualizer 頁(yè)面可以展示 kubernetes 集群對(duì)象的關(guān)系圖,按命名空間組織。
總體來(lái)說(shuō)該項(xiàng)目還處于較早期階段,功能也略顯雞肋,但是如果作為開(kāi)發(fā)學(xué)習(xí)的范例則是一個(gè)非常好的案例。