之前咱们有讲过k8s的网络模式,一定要多练习
今天我们来讲解一下监控
具体的yaml我已经放到百度网盘了,大家可以直接下载使用
链接:https://pan.baidu.com/s/16LLvtAM5EJaiy0AnmMTjjQ
提取码:xw54

grafana这个工具是一个图形化的界面,主要负责展示信息,功能非常强大,可以结合prometheus、zabbix、进行收集暂时,另外包括mysql,zk、etcd,nginx这些数据都可以收集展示
prometheus是一个时序的数据库,什么是时序的数据库,就是对之前的数据进行存放,但是不能进行删除修改等系列的操作,热切prometheus对数据是先落到内存,然后定期给磁盘中写入,这个在prometheus的配置文件中有定义,可以自行修改,
另外prometheus主要走的是http协议去通过pull模式拉取数据到agent上面
另外还有一种是push模式,这种模式主要用于数据比较短暂的收集,主要是agent给Pushgateway进行push操作,接收,然后prometheus去pull,pushgateway组件上面的数据,另外prometheus通过收集的数据通过AlertManager组件,进行报警操作,这里定义的报警媒介也比较多,短信,微信、钉钉都是可以的。
我们这里先介绍的是收集和展示后面会有报警通过企业微信

开始部署了:


k8s集群的所有节点上下载所需要的image

docker pull prom/node-exporter
docker pull prom/prometheus:v2.0.0
docker pull grafana/grafana:4.2.0
这里的node-exporter是收集物理机node节点的资源信息,网卡流量,cpu。内存,磁盘等信息

因为node-export是收集物理机的信息,所以每个机器都要有,可以用我们之前的DaemonSet控制器,保证每个机器都存在
k8s部署prometheus和grafana监控pod和机器资源(11)_第1张图片

然后启动
启动之后可以查看是否每个机器上面都存在

k8s部署prometheus和grafana监控pod和机器资源(11)
每个节点上都有了


部署prometheus组件

这里部署需要rbac安全认证,所以需要先创建认证
k8s部署prometheus和grafana监控pod和机器资源(11)_第2张图片
k8s部署prometheus和grafana监控pod和机器资源(11)_第3张图片
接下来以configmap的形式管理prometheus组件的配置文件
configmap :就是为了让镜像 和 配置文件解耦,以便实现镜像的可移植性和可复用性,简单知道就行,后面会介绍到哈

k8s部署prometheus和grafana监控pod和机器资源(11)_第4张图片
k8s部署prometheus和grafana监控pod和机器资源(11)_第5张图片
k8s部署prometheus和grafana监控pod和机器资源(11)_第6张图片
k8s部署prometheus和grafana监控pod和机器资源(11)_第7张图片
现在搭建先看,会用,等后面会介绍这个,这个是个比较重要的知识点

接下来创建rbac和configmap

创建的方式kubectl apply -f xxx.yaml 的格式,固定的

查看一下

k8s部署prometheus和grafana监控pod和机器资源(11)_第8张图片
k8s部署prometheus和grafana监控pod和机器资源(11)_第9张图片


接下来开始部署prometheus组件
k8s部署prometheus和grafana监控pod和机器资源(11)_第10张图片
k8s部署prometheus和grafana监控pod和机器资源(11)_第11张图片
这里存储使用的是emptyDir模式,可以使用hostpath,或者nfs,动态存储pv也可以

在创建svc文件对外可以访问

k8s部署prometheus和grafana监控pod和机器资源(11)_第12张图片
k8s当中svc和pod关联都是通过lable,ingress也是标签,集群基本都是标签进行关联的,这个比较重要哈

创建一些prometheus和svc

k8s部署prometheus和grafana监控pod和机器资源(11)
访问查看一下
k8s部署prometheus和grafana监控pod和机器资源(11)_第13张图片
k8s部署prometheus和grafana监控pod和机器资源(11)_第14张图片
这些数据都是pull过来的

sum by (pod_name)( rate(container_cpu_usage_seconds_total{image!="", pod_name!=""}[1m] ) )
查询pod的语句

k8s部署prometheus和grafana监控pod和机器资源(11)_第15张图片

这里prometheus的图形不好,也不够高大上,所以需要开源的grafana进行展示

也是两部分,grafana部署和svc

k8s部署prometheus和grafana监控pod和机器资源(11)_第16张图片
k8s部署prometheus和grafana监控pod和机器资源(11)_第17张图片

接下来是svc
k8s部署prometheus和grafana监控pod和机器资源(11)_第18张图片
这里没有指定固定端口哈
是随机分配的

当然也可以部署一个域名,方便访问,我们可以使用之前的ingress
k8s部署prometheus和grafana监控pod和机器资源(11)_第19张图片

创建这三个 yaml

启动查看效果

k8s部署prometheus和grafana监控pod和机器资源(11)_第20张图片
域名要是没有可以绑定hosts
k8s部署prometheus和grafana监控pod和机器资源(11)_第21张图片
admin;admin账号密码

配置prometheus源
k8s部署prometheus和grafana监控pod和机器资源(11)_第22张图片
可以直接输入模板编号315在线导入,比较省事,也可以导入json模板

k8s部署prometheus和grafana监控pod和机器资源(11)_第23张图片
k8s部署prometheus和grafana监控pod和机器资源(11)_第24张图片


是不是比之前的prometheus效果要好呢,
好了今天就讲解到这里,大家可以直接使用我的yaml进行配置,有问题欢迎私信或者评论