一、 概述
1.1 监控指标
一个好的系统,主要监控以下内容
- 集群监控
- 节点资源利用率
- 节点数
- 运行Pods
Pod监控
prometheus【定时搜索被监控服务的状态】
- 开源的
- 监控、报警、数据库
- 以HTTP协议周期性抓取被监控组件状态
- 不需要复杂的集成过程,使用http接口接入即可
- Grafana
- 开源的数据分析和可视化工具
- 支持多种数据源
二、 部署prometheus
- 首先需要部署一个守护进程

mkdir pgmoniyor
---apiVersion: apps/v1kind: DaemonSetmetadata:name: node-exporternamespace: kube-systemlabels:k8s-app: node-exporterspec:selector:matchLabels:k8s-app: node-exportertemplate:metadata:labels:k8s-app: node-exporterspec:containers:- image: prom/node-exportername: node-exporterports:- containerPort: 9100protocol: TCPname: http---apiVersion: v1kind: Servicemetadata:labels:k8s-app: node-exportername: node-exporternamespace: kube-systemspec:ports:- name: httpport: 9100nodePort: 31672protocol: TCPtype: NodePortselector:k8s-app: node-exporter
然后执行下面命令
kubectl create -f node-exporter.yaml
执行完,发现会报错
这是因为版本不一致的问题,因为发布的正式版本,而这个属于测试版本
所以我们找到第一行,然后把内容修改为如下所示
# 修改前apiVersion: extensions/v1beta1# 修改后 【正式版本发布后,测试版本不能使用】apiVersion: apps/v1
创建完成后的效果
然后通过yaml的方式部署prometheus
- configmap:定义一个configmap:存储一些配置文件【不加密】configmap.yaml
- prometheus.deploy.yaml:部署一个deployment【包括端口号,资源限制】prometheus.deploy.yml
- prometheus.svc.yaml:对外暴露的端口prometheus.svc.yml
- rbac-setup.yaml:分配一些角色的权限rbac-setup.yaml
下面我们进入目录下,首先部署 rbac-setup.yaml
kubectl create -f rbac-setup.yaml

然后分别部署
# 部署configmapkubectl create -f configmap.yaml# 部署deploymentkubectl create -f prometheus.deploy.yml# 看看版本对不对# 部署svckubectl create -f prometheus.svc.yml
部署完成后,我们使用下面命令查看
kubectl get pods -n kube-system

在我们部署完成后,即可看到 prometheus 的 pod了,然后通过下面命令,能够看到对应的端口
kubectl get svc -n kube-system

通过这个,我们可以看到 prometheus 对外暴露的端口为 30003,访问页面即可对应的图形化界面
http://10.4.104.169:30003
三、 部署grafana
kubectl create -f grafana-deploy.yaml
然后执行完后,发现下面的问题
error: unable to recognize "grafana-deploy.yaml": no matches for kind "Deployment" in version "extensions/v1beta1"
我们需要修改如下内容
# 修改apiVersion: apps/v1# 添加selectorspec:replicas: 1selector:matchLabels:app: grafanacomponent: coretemplate:metadata:labels:app: grafanacomponent: core
修改完成后,我们继续执行上述代码
grafana-svc.yaml
grafana-ing.yaml
# 创建deploymentkubectl create -f grafana-deploy.yaml# 创建svckubectl create -f grafana-svc.yaml# 创建 ingkubectl create -f grafana-ing.yaml
四、 配置数据源
下面我们需要开始打开 Grafana,然后配置数据源,导入数据显示模板
kubectl get svc -n kube-system

我们可以通过 ip + 32381 访问我们的 grafana 图形化页面
然后输入账号和密码:admin admin
进入后,我们就需要配置 prometheus 的数据源
和 对应的IP【这里IP是我们的ClusterIP】
五、 设置显示数据的模板
选择Dashboard,导入我们的模板
然后输入 315 号模板
输入315
报错!!
然后选择 prometheus数据源 mydb,导入即可
导入后的效果如下所示

