k8s安装Prometheus+Grafana

前提条件:

1.部署nfs服务
2.目录权限必须是777
[[email protected] data]# cat /etc/exports
/nfs 192.168.1.0/24(rw)
目录结构:(最终)

[[email protected] nfs]# tree
.
├── grafana
│ └── data

└── prometheus
└── data

[[email protected] data]# ll /nfs/

1.在kubernetest集群中创建namespace
apiVersion: v1
kind: Namespace
metadata:
name: ns-monitor
labels:
name: ns-monitor
[[email protected] Prometheus+Grafana╝р┐╪Kubernetes]# kubectl apply -f namespace.yaml

[[email protected] Prometheus+Grafana╝р┐╪Kubernetes]# kubectl get ns

2.安装node-exporter
在kubernetest集群中部署node-exporter.
Node-exporter用于采集kubernetes集群中各个节点的物理指标,比如:Memory、CPU等。
可以直接在每个物理节点是直接安装,这里我们使用DaemonSet部署到每个节点上.
使用 hostNetwork: true 和 hostPID: true 使其获得Node的物理指标信息,配置tolerations使其在master节点也启动一个pod。

[[email protected] Prometheus_Grafana]# vim node-exporter.yaml

kind: DaemonSet
apiVersion: apps/v1
metadata:
labels:
app: node-exporter
name: node-exporter
namespace: ns-monitor
spec:
revisionHistoryLimit: 10
selector:
matchLabels:
app: node-exporter
template:
metadata:
labels:
app: node-exporter
spec:
containers:
- name: node-exporter
image: prom/node-exporter:v0.16.0
ports:
- containerPort: 9100
protocol: TCP
name: http
hostNetwork: true
hostPID: true
tolerations:
- effect: NoSchedule
operator: Exists


kind: Service
apiVersion: v1
metadata:
labels:
app: node-exporter
name: node-exporter-service
namespace: ns-monitor
spec:
ports:
- name: http
port: 9100
nodePort: 31672
protocol: TCP
type: NodePort
selector:
app: node-exporter

检验node-exporter是否成功运行

[[email protected] Prometheus_Grafana]# kubectl get pod -n ns-monitor

[[email protected] Prometheus_Grafana]# kubectl get svc -n ns-monitor

k8s安装Prometheus+Grafana
Prometheus pod
prometheus.yaml 中包含rbac认证、ConfigMap等。

kubectl apply -f prometheus.yaml

[[email protected] Prometheus_Grafana]# kubectl get pod -n ns-monitor

[[email protected] Prometheus_Grafana]# kubectl get svc -n ns-monitor

浏览器访问: http://主机ip:30790/graph

k8s安装Prometheus+Grafana
k8s安装Prometheus+Grafana
查看集群中所有pod在1min捏的cpu使用情况:

rate函数获取样本变化率

k8s安装Prometheus+Grafana
4.在kubernetest中部署grafana
kubectl apply -f grafana.yaml

[[email protected] Prometheus_Grafana]# kubectl get svc -n ns-monitor

浏览器访问: http://主机ip:30105/graph/login 默认用户名和密码:admin/admin

k8s安装Prometheus+Grafana
grafana数据源

k8s安装Prometheus+Grafana
6.导入Prometheus Dashboard

k8s安装Prometheus+Grafana
k8s安装Prometheus+Grafana
6.导入kubernetes Dashboard
把 kubernetes的Dashboard的模板导入进来,直接把JSON格式内容复制进来。

k8s安装Prometheus+Grafana
效果图:

k8s安装Prometheus+Grafana
7:官网dashboard下载地址:
https://grafana.com/grafana/dashboards