运维开发网

k8s部署prometheus和grafana监控pod和机器资源(11)

运维开发网 https://www.qedev.com 2020-04-14 14:46 出处:51CTO 作者:tty之星
k8s部署prometheus和grafana监控pod和机器资源

之前咱们有讲过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)

然后启动

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

k8s部署prometheus和grafana监控pod和机器资源(11)

每个节点上都有了


部署prometheus组件

这里部署需要rbac安全认证,所以需要先创建认证

k8s部署prometheus和grafana监控pod和机器资源(11)

k8s部署prometheus和grafana监控pod和机器资源(11)

接下来以configmap的形式管理prometheus组件的配置文件

configmap :就是为了让镜像 和 配置文件解耦,以便实现镜像的可移植性和可复用性,简单知道就行,后面会介绍到哈

k8s部署prometheus和grafana监控pod和机器资源(11)

k8s部署prometheus和grafana监控pod和机器资源(11)

k8s部署prometheus和grafana监控pod和机器资源(11)

k8s部署prometheus和grafana监控pod和机器资源(11)

现在搭建先看,会用,等后面会介绍这个,这个是个比较重要的知识点

接下来创建rbac和configmap

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

查看一下

k8s部署prometheus和grafana监控pod和机器资源(11)

k8s部署prometheus和grafana监控pod和机器资源(11)


接下来开始部署prometheus组件

k8s部署prometheus和grafana监控pod和机器资源(11)

k8s部署prometheus和grafana监控pod和机器资源(11)

这里存储使用的是emptyDir模式,可以使用hostpath,或者nfs,动态存储pv也可以

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

k8s部署prometheus和grafana监控pod和机器资源(11)

k8s当中svc和pod关联都是通过lable,ingress也是标签,集群基本都是标签进行关联的,这个比较重要哈

创建一些prometheus和svc

k8s部署prometheus和grafana监控pod和机器资源(11)

访问查看一下

k8s部署prometheus和grafana监控pod和机器资源(11)

k8s部署prometheus和grafana监控pod和机器资源(11)

这些数据都是pull过来的

sum by (pod_name)( rate(container_cpu_usage_seconds_total{image!="", pod_name!=""}[1m] ) )

查询pod的语句

k8s部署prometheus和grafana监控pod和机器资源(11)

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

也是两部分,grafana部署和svc

k8s部署prometheus和grafana监控pod和机器资源(11)

k8s部署prometheus和grafana监控pod和机器资源(11)

接下来是svc

k8s部署prometheus和grafana监控pod和机器资源(11)

这里没有指定固定端口哈

是随机分配的

当然也可以部署一个域名,方便访问,我们可以使用之前的ingress

k8s部署prometheus和grafana监控pod和机器资源(11)

创建这三个 yaml

启动查看效果

k8s部署prometheus和grafana监控pod和机器资源(11)

域名要是没有可以绑定hosts

k8s部署prometheus和grafana监控pod和机器资源(11)

admin;admin账号密码

配置prometheus源

k8s部署prometheus和grafana监控pod和机器资源(11)

可以直接输入模板编号315在线导入,比较省事,也可以导入json模板

k8s部署prometheus和grafana监控pod和机器资源(11)

k8s部署prometheus和grafana监控pod和机器资源(11)


是不是比之前的prometheus效果要好呢,

好了今天就讲解到这里,大家可以直接使用我的yaml进行配置,有问题欢迎私信或者评论

0

精彩评论

暂无评论...
验证码 换一张
取 消