kube-liveboard: kubernetes集群可視化工具


kube-liveboard

隨着kubernetes 集群的增大,對於集群數據選取恰當的形式進行展示有助於直觀反映集群的狀態,方便發現集群的短板,了解集群的瓶頸。因此,筆者做了kube-liveboard這個項目用以實現以上目標,實現集群狀態的可視化。

從apiserver中可以獲取所有的資源信息,社區目前有kube-state-metrics項目對各項資源進行分別的統計,並形成metrics接口。筆者自己也開發了一個類似的項目,kube-cluster-state,用以統計比如每個node上容器個數、request資源分配率、limit資源分配率、集群中容器各之類的指標。

除了以上這兩個數據源,筆者還整合了master組件中如scheduler、etcd、apiserver等組件的metrics接口。通過telegraf將metrics接口的數據推送到influxdb中。並最終通過grafana進行展示。

pipeline

不同的指標需要通過不同的形式進行展示。許多的原始數據需要進行整合、豐富和二次加工,以便在展示時更加直觀。本文介紹一下在kube-liveboard中一些典型指標的處理方式以及展現形式。

比如apiserver的metrics接口可以提供各種資源的請求次數、延時的統計,筆者可以將其進行計算,得到apiserver的請求速率。同樣,通過調度的次數和調度時長的統計,也可以得到調度的吞吐率。

apiserver的請求延時、請求速率、請求計數、容器狀態等,這些指標筆者更關心其隨時間的變化,以便對比了解其變化情況,因此采用折線圖的方式進行展示。

調度的延時、node節點上cpu和內存的分配率的直方圖統計,則可以使用柱狀圖和熱力圖進行展示。對於集群的物理機、容器、各項資源的總和情況,因為筆者更為關注其現在的狀態,因此一般采用SingleState或者表格的形式進行展示。

metrics

本文將對以上指標的展示界面進行介紹。這里使用的是筆者的一個仿真集群的數據。

下圖主要展示的是單個apiserver的性能監控。這里可以切換不同的apiserver和不同的資源以及不同的請求方式,展示其請求的速率,不同返回值的計數,請求的tp50/tp90/tp99/均值延時的情況以及請求延時的直方圖統計情況。

apiserver-2

下圖主要展示的是匯總的apiserver的性能監控。這里可以查看不同的apiserver的請求速率。總的apiserver不同資源的請求速率。通過這些指標可以了解目前apiserver的負載是否均衡,哪種資源請求的速率最多,以便在apiserver出現性能瓶頸時進行分析。

apiserver-1

下圖主要是調度性能的監控。展示了調度延時的熱力圖變化,調度的各個階段延時統計情況,調度的吞吐量以及調度延時的直方圖統計。通過這些圖表,可以了解調度器目前的性能情況,以及調度各個階段的情況。

scheduler-performance

下圖主要是整個集群的狀態,主要展示了集群資源信息總覽,各個狀態的容器統計以及節點資源分配率的熱力圖。從這些圖表中可以了解整個集群的狀態變化。

scheduling-quality

下圖是調度質量監控,主要展示了當前的調度分配率直方圖和分位圖。從中可以反應出調度是否均衡,以及整個集群的資源瓶頸等。

scheduling-quality-2


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM