Kubernetes监控——Heapster+InfluxDB+Grafana
Kubernetes & Docker监控之最后一章,前三篇如下:
2、 kubernetes+docker监控之Docker监控——cadvisor
3、 Docker监控——Cadvisor+InfluxDB+Grafana搭建过程
1)、heapster下载和启动:
(1)、heapster镜像下载:
docker pull index.tenxcloud.com/google_containers/heapster:v1.1.0 |
(2)、heapster单独作为容器启动:
docker run -d index.tenxcloud.com/google_containers/heapster:v1.1.0 "--source=kubernetes:http://192.168.16.100:8080?inClusterConfig=false&kubeletHttps=true&kubeletPort=10250&useServiceAccount=true&auth=" "--sink=influxdb:http://192.168.16.234:8086" |
参数说明:
--source :指定kube-apiserver,这里使用https,需要注意下
--sink :指定influxdb,heapster自动创建数据库【k8s】
inClusterConfig :Use kube config in service accounts associated with heapster's
namesapce. (default: true)
kubeletPort :kubelet port to use (default: 10255)
kubeletHttps : whether to use https to connect to kubelets (default: false)
apiVersion : API version to use to talk to Kubernetes. Defaults to the version
in kubeConfig.
insecure :whether to trust kubernetes certificates (default: false)
auth :client auth file to use. Set auth if the service accounts are not usable.
useServiceAccount :whether to use the service account token if one is mounted
at /var/run/secrets/kubernetes.io/serviceaccount/token (default: false)
heapster容器,启动过程:
[root@localhost kube-1.2]# docker run -d index.tenxcloud.com/google_containers/heapster:v1.1.0 "--source=kubernetes:http://192.168.16.100:8080?inClusterConfig=false&kubeletHttps=true&kubeletPort=10250&useServiceAccount=true&auth=" "--sink=influxdb:http://192.168.16.234:8086"
b86aaaaa88ccf648120611254bfeb0078a8b9dd853d4b5a2d6a0abb97743bf1d
[root@localhost kube-1.2]# docker logs b86aaaaa8
I0714 07:05:18.116787 1 heapster.go:65] /heapster --source=kubernetes:http://192.168.16.100:8080?inClusterConfig=false&kubeletHttps=true&kubeletPort=10250&useServiceAccount=true&auth= --sink=influxdb:http://192.168.16.234:8086
I0714 07:05:18.117158 1 heapster.go:66] Heapster version 1.1.0
I0714 07:05:18.239220 1 configs.go:60] Using Kubernetes client with master "http://192.168.16.100:8080" and version "v1"
I0714 07:05:18.239270 1 configs.go:61] Using kubelet port 10250
I0714 07:05:31.255132 1 influxdb.go:223] created influxdb sink with options: host:192.168.16.234:8086 user:root db:k8s
I0714 07:05:31.255170 1 heapster.go:92] Starting with InfluxDB Sink
I0714 07:05:31.255177 1 heapster.go:92] Starting with Metric Sink
I0714 07:05:31.271159 1 heapster.go:171] Starting heapster on port 8082
I0714 07:06:05.000403 1 manager.go:79] Scraping metrics start: 2016-07-14 07:05:00 +0000 UTC, end: 2016-07-14 07:06:00 +0000 UTC
E0714 07:06:05.000504 1 kubelet.go:270] No nodes received from APIserver.
I0714 07:06:05.000520 1 manager.go:152] ScrapeMetrics: time: 5.756µs size: 0
I0714 07:06:05.365486 1 influxdb.go:201] Created database "k8s" on influxDB server at "192.168.16.234:8086"
[root@localhost kube-1.2]#
[root@localhost kube-1.2]# docker ps |grep heapster
b86aaaaa88cc index.tenxcloud.com/google_containers/heapster:v1.1.0 "/heapster --source=k" 2 minutes ago Up 2 minutes furious_mahavira
[root@localhost kube-1.2]#
看到influxdb已经有k8s的数据库和表了,剩下的就是grafana搜索和显示了
[root@localhost kube-1.2]# influx
Visit https://enterprise.influxdata.com to register for updates, InfluxDB server management, and monitoring.
Connected to http://localhost:8086 version 0.9.6
InfluxDB shell 0.9.6
>
>
> show databases
name: databases
---------------
name
_internal
cadvisor
k8s
>
> use k8s
Using database k8s
>
> SHOW MEASUREMENTS
name: measurements
------------------
name
cpu/node_reservation
cpu/node_utilization
cpu/usage
cpu/usage_rate
filesystem/limit
filesystem/usage
memory/major_page_faults
memory/major_page_faults_rate
memory/node_reservation
memory/node_utilization
memory/page_faults
memory/page_faults_rate
memory/usage
memory/working_set
network/rx
network/rx_errors
network/rx_errors_rate
network/rx_rate
network/tx
network/tx_errors
network/tx_errors_rate
network/tx_rate
uptime
2)、InfluxDB安装与配置:
请参考之前Cadvisor+InfluxDB+Grafana的内容,http://my.oschina.net/fufangchun/blog/718382
3)、Grafana安装与配置:
(1)、Grafana安装:
请参考之前Cadvisor+InfluxDB+Grafana的内容,http://my.oschina.net/fufangchun/blog/718382
(2)、Grafana配置:
Ⅰ、配置influxdb数据源:
Ⅱ、新建展示页:
展示页,用来区分不同的influxdb数据源
Ⅲ、新建数据项:
根据特定的条件(sql),从influxdb查询相关的数据,并展示。
Grafana会自动显示k8s库的字段,可以根据需求进行选择,每个where后面,加上:【pod_name =~ /^\.*/】,按照pod名称分类
SELECT last(value) FROM k8s."default"."network/tx" WHERE pod_name =~ /^\.*/ AND time > now() - 30m GROUP BY time(10s), pod_name |
Ⅳ、完整的grafana展示:
这里上传可能看不清,可以去百度盘下载,我这里是有些数据是分别做了,按照pod和namespace进行分组的,有多租户的情况,比较实用,可以根据情况,自行定义。

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
-
上一篇
Kubernetes加入新节点,经验总结
Kubernetes节点加入,经验总结 kubeadm安装Kubernetes,实践记录。 参考:https://my.oschina.net/u/2306127/blog/1628082 Kubernetes主控节点建立后(方法参见上面的链接),就可以随时添加 更多的工作节点进去构建更大的集群(minikube设计为单机开发使用,不能添加工作节点),容器实例可以在所有符合条件的node上调度运行,这是Kubernetes最为强大的功能。 因为容器工作负载可以在任何节点上运行,所以存储和计算资源都应该设计为通过网络接口访问,资源、服务和计算任务都是浮动的。 kubeadm join 命令可以添加工作节点。最简单的方式是通过Token,主控节点上使用kubeadm token命令可以管理集群所产生的Token。 1、节点命名规则 K8S本身就是采用一套名称规则来标记和筛选容器的系统。节点的命名有一个统一规划,后面管理起来会更方便。局域网中直接会根据机器名列出节点,因此不要使用同名,最好加上数字编号,前面用英文字母顺序,便于排序。 2、节点加入命令 kubeadm init 结束时会自动产...
-
下一篇
如何用Ansible部署Kubernetes集群到OpenStack
最近的Austin OpenStack峰会上,参会者中对容器感兴趣的人数之多,让我印象深刻。几乎所有跟容器相关的会议现在都意识到了它的优点。通过将应用程序容器化,就能够将主机操作系统虚拟化。这也就意味着,你可以在主机操作系统中为每个容器创建隔离环境,比如文件系统,网络堆栈和进程空间,令容器之间互相可见。此外,容器又是轻量级、轻便的,不仅仅跨操作系统,还可以跨云端。这些功能令开发者可以快速构建,部署,运输和扩容应用程序,而这些动作在虚拟机环境中是不可能实现的。 在峰会上,我有幸将自己参与的一个对我们团队有很大帮助的项目呈现给观众们看。可以点击这里查看我的presentation:https://www.openstack.org/videos/video/kubernetes-automation-on-openstack-using-ansible 这个项目是为了在我们的OpenStack Kilo 环境中建立起一个自动Kubernetes部署。在这篇博客帖中,我会描述我们的解决方法,并且在Github上面提供代码回购的总览。你可以利用其中一些代码来创建你自己的Kubernetes集群...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- Red5直播服务器,属于Java语言的直播服务器
- SpringBoot2全家桶,快速入门学习开发网站教程
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- SpringBoot2更换Tomcat为Jetty,小型站点的福音
- CentOS8编译安装MySQL8.0.19
- MySQL数据库在高并发下的优化方案
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- SpringBoot2初体验,简单认识spring boot2并且搭建基础工程