之前咱们有讲过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控制器,保证每个机器都存在
然后启动
启动之后可以查看是否每个机器上面都存在
每个节点上都有了
部署prometheus组件
这里部署需要rbac安全认证,所以需要先创建认证
接下来以configmap的形式管理prometheus组件的配置文件
configmap :就是为了让镜像 和 配置文件解耦,以便实现镜像的可移植性和可复用性,简单知道就行,后面会介绍到哈
现在搭建先看,会用,等后面会介绍这个,这个是个比较重要的知识点
接下来创建rbac和configmap
创建的方式kubectl apply -f xxx.yaml 的格式,固定的
查看一下
接下来开始部署prometheus组件
这里存储使用的是emptyDir模式,可以使用hostpath,或者nfs,动态存储pv也可以
在创建svc文件对外可以访问
k8s当中svc和pod关联都是通过lable,ingress也是标签,集群基本都是标签进行关联的,这个比较重要哈
创建一些prometheus和svc
访问查看一下
这些数据都是pull过来的
sum by (pod_name)( rate(container_cpu_usage_seconds_total{image!="", pod_name!=""}[1m] ) )
查询pod的语句
这里prometheus的图形不好,也不够高大上,所以需要开源的grafana进行展示
也是两部分,grafana部署和svc
接下来是svc
这里没有指定固定端口哈
是随机分配的
当然也可以部署一个域名,方便访问,我们可以使用之前的ingress
创建这三个 yaml
启动查看效果
域名要是没有可以绑定hosts
admin;admin账号密码
配置prometheus源
可以直接输入模板编号315在线导入,比较省事,也可以导入json模板
是不是比之前的prometheus效果要好呢,
好了今天就讲解到这里,大家可以直接使用我的yaml进行配置,有问题欢迎私信或者评论
原文地址:https://blog.51cto.com/xiaorenwutest/2485060