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进行展示。

不同的指标需要通过不同的形式进行展示。许多的原始数据需要进行整合、丰富和二次加工,以便在展示时更加直观。本文介绍一下在kube-liveboard中一些典型指标的处理方式以及展现形式。
比如apiserver的metrics接口可以提供各种资源的请求次数、延时的统计,笔者可以将其进行计算,得到apiserver的请求速率。同样,通过调度的次数和调度时长的统计,也可以得到调度的吞吐率。
apiserver的请求延时、请求速率、请求计数、容器状态等,这些指标笔者更关心其随时间的变化,以便对比了解其变化情况,因此采用折线图的方式进行展示。
调度的延时、node节点上cpu和内存的分配率的直方图统计,则可以使用柱状图和热力图进行展示。对于集群的物理机、容器、各项资源的总和情况,因为笔者更为关注其现在的状态,因此一般采用SingleState或者表格的形式进行展示。

本文将对以上指标的展示界面进行介绍。这里使用的是笔者的一个仿真集群的数据。
下图主要展示的是单个apiserver的性能监控。这里可以切换不同的apiserver和不同的资源以及不同的请求方式,展示其请求的速率,不同返回值的计数,请求的tp50/tp90/tp99/均值延时的情况以及请求延时的直方图统计情况。

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

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

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

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

kube-liveboard: kubernetes集群可视化工具的更多相关文章
- Kubernetes集群管理工具kubectl命令技巧大全
一. kubectl概述 Kubectl是用于控制Kubernetes集群的命令行工具,通过kubectl能够对集群本身进行管理,并能够在集群上进行容器化应用的安装部署. kubectl命令的语法如下 ...
- heptio scanner kubernetes 集群诊断工具部署说明
heptio scanner 是一款k8s 集群状态的诊断工具,还是很方便的,但是有一点就是需要使用google 的镜像 参考地址 https://scanner.heptio.com/ 部署 kub ...
- kubeadm部署一个Kubernetes集群
kubeadm是官方社区推出的一个用于快速部署kubernetes集群的工具.这个工具能通过两条指令完成一个kubernetes集群的部署: # 创建一个 Master 节点 $ kubeadm in ...
- [云原生]Kubernetes - 集群搭建(第2章)
目录 一.前置知识点 二.kubeadm部署方式介绍 三.安装要求 四.最终目标 五.准备环境 六.环境初始化 6.1 设置系统主机名以及Hosts文件的相互解析 6.2 安装依赖文件(所有节点) 6 ...
- Kubeadm部署K8S(kubernetes)集群(测试、学习环境)-单主双从
1. kubernetes介绍 1.1 kubernetes简介 kubernetes的本质是一组服务器集群,它可以在集群的每个节点上运行特定的程序,来对节点中的容器进行管理.目的是实现资源管理的自动 ...
- kubernetes集群部署
鉴于Docker如此火爆,Google推出kubernetes管理docker集群,不少人估计会进行尝试.kubernetes得到了很多大公司的支持,kubernetes集群部署工具也集成了gce,c ...
- Kubernetes集群部署关键知识总结
Kubernetes集群部署需要安装的组件东西很多,过程复杂,对服务器环境要求很苛刻,最好是能连外网的环境下安装,有些组件还需要连google服务器下载,这一点一般很难满足,因此最好是能提前下载好准备 ...
- Centos 7 kubernetes集群搭建
一.环境准备 Kubernetes支持在物理服务器或虚拟机中运行,本次使用虚拟机准备测试环境,硬件配置信息如表所示: IP地址 节点角色 CPU Memory Hostname 磁盘 192.168. ...
- CentOS上部署Kubernetes集群
1.开始前系统环境准备 # 1.设置基本环境 yum install -y net-tools conntrack-tools wget vim ntpdate libseccomp libtool- ...
随机推荐
- ad 线束和网络
ad 线束和通道复用会遇到网络无法更新的pcb的异常, 就算,我们把网络作用范围调整到页,电源全局仍然会失败,通过查找原因 尽量网络标签不同.稍微更改就可以 比如 sda1,sda1s不要一样
- body里面的onload和window.onload,window.load的区别
区别:body里面的onload是在“页面加载完成后执行的动作”window里面的onload是在“页面加载时执行的动作” window.load这个应该只是表明事件方法,但并未执行,比如click表 ...
- (转载)python调用shell命令之os 、commands、subprocess
linux系统下进入python交互式环境: 一.os 模块 1.1.os模块的exec方法簇: python交互界面中: In [1]: import os In [2]: os.exec os.e ...
- 封装和static 以及关键字“this”的用法
1 封装 1.1 构造方法 构造方法是一种特殊的方法,专门用于构造/实例化对象,形式 [修饰符] 类名(){}: 1.1.1 无参构造 无参构造方法就是构造方法没有任何参数.构造方法在创建对象(new ...
- js 自动类型转换
js自动类型转换 1.==符号在判断左右两边数据是否相等时,如果数据类型一致,直接比较值即可 2.==符号左右数据类型不一致时,如果两方数据为布尔型.数值型.字符串型时,不为数字的那一方自动调用Num ...
- /etc/inittab文件详解
/etc/inittab由/sbin/init程序解析调用,用于系统初始化,/sbin/init可参考源码busybox中init.c的实现方式. 原址如下: http://leejia.blog.5 ...
- nodeJs和JavaScript的异同(转)
原文:https://blog.csdn.net/lazycode_cat/article/details/61916291 JavaScript组成:ECMAScript(定义这门语言的基础,比如语 ...
- 把jmeter获取到的信息存到本地文件
1.jmeter使用正则表达式提取器,获取到响应信息,把获取到的响应信息写到本地文件 2.添加后置Bean Shell ,写入以下脚本 3.打开本地文件查看,写入成功 脚本内容如下: FileWrit ...
- Mybatis插入记录并返回MySQL自增主键
mapper Integer insertConfigAndGetId(CrawlerConfig config); xml <insert id="insertConfigAndGe ...
- for循环的beak continue用法
continue跳出该循环, for循环后面的都要执行.break直接中段循环 后面不执行了