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

kube-liveboard

随着kubernetes 集群的增大,对于集群数据选取恰当的形式进行展现有助于直观反映集群的状态,方便发现集群的短板,了解集群的瓶颈。所以,笔者作了kube-liveboard这个项目用以实现以上目标,实现集群状态的可视化。node

从apiserver中能够获取全部的资源信息,社区目前有kube-state-metrics项目对各项资源进行分别的统计,并造成metrics接口。笔者本身也开发了一个相似的项目,kube-cluster-state,用以统计好比每一个node上容器个数、request资源分配率、limit资源分配率、集群中容器各之类的指标。api

除了以上这两个数据源,笔者还整合了master组件中如scheduler、etcd、apiserver等组件的metrics接口。经过telegraf将metrics接口的数据推送到influxdb中。并最终经过grafana进行展现。性能

pipeline

不一样的指标须要经过不一样的形式进行展现。许多的原始数据须要进行整合、丰富和二次加工,以便在展现时更加直观。本文介绍一下在kube-liveboard中一些典型指标的处理方式以及展示形式。orm

好比apiserver的metrics接口能够提供各类资源的请求次数、延时的统计,笔者能够将其进行计算,获得apiserver的请求速率。一样,经过调度的次数和调度时长的统计,也能够获得调度的吞吐率。server

apiserver的请求延时、请求速率、请求计数、容器状态等,这些指标笔者更关心其随时间的变化,以便对比了解其变化状况,所以采用折线图的方式进行展现。blog

调度的延时、node节点上cpu和内存的分配率的直方图统计,则可使用柱状图和热力图进行展现。对于集群的物理机、容器、各项资源的总和状况,由于笔者更为关注其如今的状态,所以通常采用SingleState或者表格的形式进行展现。接口

metrics

本文将对以上指标的展现界面进行介绍。这里使用的是笔者的一个仿真集群的数据。flux

下图主要展现的是单个apiserver的性能监控。这里能够切换不一样的apiserver和不一样的资源以及不一样的请求方式,展现其请求的速率,不一样返回值的计数,请求的tp50/tp90/tp99/均值延时的状况以及请求延时的直方图统计状况。ip

apiserver-2

下图主要展现的是汇总的apiserver的性能监控。这里能够查看不一样的apiserver的请求速率。总的apiserver不一样资源的请求速率。经过这些指标能够了解目前apiserver的负载是否均衡,哪一种资源请求的速率最多,以便在apiserver出现性能瓶颈时进行分析。内存

apiserver-1

下图主要是调度性能的监控。展现了调度延时的热力图变化,调度的各个阶段延时统计状况,调度的吞吐量以及调度延时的直方图统计。经过这些图表,能够了解调度器目前的性能状况,以及调度各个阶段的状况。

scheduler-performance

下图主要是整个集群的状态,主要展现了集群资源信息总览,各个状态的容器统计以及节点资源分配率的热力图。从这些图表中能够了解整个集群的状态变化。

scheduling-quality

下图是调度质量监控,主要展现了当前的调度分配率直方图和分位图。从中能够反应出调度是否均衡,以及整个集群的资源瓶颈等。

scheduling-quality-2

相关文章
相关标签/搜索