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集群可视化工具的更多相关文章

  1. Kubernetes集群管理工具kubectl命令技巧大全

    一. kubectl概述 Kubectl是用于控制Kubernetes集群的命令行工具,通过kubectl能够对集群本身进行管理,并能够在集群上进行容器化应用的安装部署. kubectl命令的语法如下 ...

  2. heptio scanner kubernetes 集群诊断工具部署说明

    heptio scanner 是一款k8s 集群状态的诊断工具,还是很方便的,但是有一点就是需要使用google 的镜像 参考地址 https://scanner.heptio.com/ 部署 kub ...

  3. kubeadm部署一个Kubernetes集群

    kubeadm是官方社区推出的一个用于快速部署kubernetes集群的工具.这个工具能通过两条指令完成一个kubernetes集群的部署: # 创建一个 Master 节点 $ kubeadm in ...

  4. [云原生]Kubernetes - 集群搭建(第2章)

    目录 一.前置知识点 二.kubeadm部署方式介绍 三.安装要求 四.最终目标 五.准备环境 六.环境初始化 6.1 设置系统主机名以及Hosts文件的相互解析 6.2 安装依赖文件(所有节点) 6 ...

  5. Kubeadm部署K8S(kubernetes)集群(测试、学习环境)-单主双从

    1. kubernetes介绍 1.1 kubernetes简介 kubernetes的本质是一组服务器集群,它可以在集群的每个节点上运行特定的程序,来对节点中的容器进行管理.目的是实现资源管理的自动 ...

  6. kubernetes集群部署

    鉴于Docker如此火爆,Google推出kubernetes管理docker集群,不少人估计会进行尝试.kubernetes得到了很多大公司的支持,kubernetes集群部署工具也集成了gce,c ...

  7. Kubernetes集群部署关键知识总结

    Kubernetes集群部署需要安装的组件东西很多,过程复杂,对服务器环境要求很苛刻,最好是能连外网的环境下安装,有些组件还需要连google服务器下载,这一点一般很难满足,因此最好是能提前下载好准备 ...

  8. Centos 7 kubernetes集群搭建

    一.环境准备 Kubernetes支持在物理服务器或虚拟机中运行,本次使用虚拟机准备测试环境,硬件配置信息如表所示: IP地址 节点角色 CPU Memory Hostname 磁盘 192.168. ...

  9. CentOS上部署Kubernetes集群

    1.开始前系统环境准备 # 1.设置基本环境 yum install -y net-tools conntrack-tools wget vim ntpdate libseccomp libtool- ...

随机推荐

  1. 更为复杂C程序的运行时结构

    运行环境 win 10 企业版 1809 17763.194,MinGW V3.14 32位,Bundled V3.13.2,Bundled GDB V8.2. 在C语言中,栈的方向是从高地址向低地址 ...

  2. Centos7双网卡绑定配置 bonding

    bonding的七种工作模式: bonding技术提供了七种工作模式,在使用的时候需要指定,每种有各自的优缺点,我们使用的是 mode=4 balance-rr (mode=0) 默认, 有高可用 ( ...

  3. /etc/inittab文件详解

    /etc/inittab由/sbin/init程序解析调用,用于系统初始化,/sbin/init可参考源码busybox中init.c的实现方式. 原址如下: http://leejia.blog.5 ...

  4. 解读socketserver源码

    解读python中SocketServer源码 再看继承 真正的大餐来之前,还是来点儿开胃菜!回顾一下关于类的继承的知识:    我们先看上面的代码,这是一个简单的类继承,我们可以看到父类Base和子 ...

  5. 004-数据结构之ADT-栈与队列【数组方式实现】

    一.ADT 在介绍抽象数据类型的时候,先看看什么是数据类型,在Java中可能首先会想到像 int,double这样的词,这是Java中的基本数据类型,一个数据类型会涉及到两件事: ①.拥有特定特征的数 ...

  6. 学习animation、transition、transform和@keyframes的使用

    当我们需要给页面添加动画效果时,需要用到CSS3的animation样式属性: 例如: animation: test 2s infinite; 其中test是动画的名称,2s是动画的时长,infin ...

  7. Virtual Memory is deprecated in Redis 2.4

    在读一个源码的讲解的文章时或者读一本关于某个技术的数据集时,可能书籍的讲解是滞后的,就是没有更上最新的代码,那么就要注意了WARNING! Virtual Memory is deprecated i ...

  8. ln -s软链接文件算文件吗

    场景: 开发A在windows环境下完成了开发,配置管理员cm搭建jenkins在centos环境下编译,cm编译失败,但是开发A在他的windows环境下可以编译过,最后发现是某几个so文件的软链接 ...

  9. FB面经Prepare: Friends Recommendation

    有个getFriend() API, 让你推荐你的朋友的朋友做你的朋友,当然这个新朋友不能是你原来的老朋友 package fb; import java.util.*; public class R ...

  10. Centos7下使用Ceph-deploy快速部署Ceph分布式存储-操作记录

    之前已详细介绍了Ceph分布式存储基础知识,下面简单记录下Centos7使用Ceph-deploy快速部署Ceph环境: 1)基本环境 192.168.10.220 ceph-admin(ceph-d ...