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. Weex开发中的应用小笔记

    内容: 获取输入或其他操作使得值一直改变并在一段不改变的时间后执行下一步操作(输入搜索关键字并执行搜索) https://vuejs.org/v2/guide/computed.html?spm=a2 ...

  2. Spring Boot 国际化及点击链接跳转国家语言

    一.国际化 在SpringBoot中已经自动帮我们配置管理国际化资源的组件,所以我们只需要编写代码就可. @Bean @ConfigurationProperties(prefix = "s ...

  3. react学习过程中遇到的错误记录

    1.App.js的代码如下: import React, { Component } from 'react'; import Test from './components/Test.jsx'; i ...

  4. springcloud第二步:发布服务提供者

    创建项目service-member Maven依赖 <parent> <groupId>org.springframework.boot</groupId> &l ...

  5. FPGA小例子

    AND ---与门:OR --- 或门:INV --- 非门:NAND --- 与非门:NOR --- 或非门:XOR --- 异或门:XNOR ---同或门:MUX --- 数据选择器: 1.使用一 ...

  6. Python3学习之路~9.2 操作系统发展史介绍、进程与线程区别、线程语法、join、守护线程

    一 操作系统发展史介绍 参考链接:http://www.cnblogs.com/alex3714/articles/5230609.html 二 进程与线程 进程: 对各种资源管理的集合 就可以称为进 ...

  7. python split 的应用

    # 1. 有字符串 "k:1|k1:2|k2:3|k3:4" 处理成字典 {"k":1, "k1":2,...}a1 = "k:1 ...

  8. Servlet服务器、客户端跳转

    服务期跳转.服务器端转发.服务器端重定向是一个意思使用“req.getRequestDispatcher(“跳转路径”).forward(req,resp)”实现服务器端转发 客户端发送请求后数据传输 ...

  9. Linux系统常用升级的基础包

    Linux系统常用升级的基础包 yum -y install lrzsz gcc gcc-c++ make flex autoconf automake vixie-cron libjpeg libj ...

  10. 获取地址栏url

    Url=${window.location.protocol}//${window.location.host}${window.location.pathname}