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
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
查看集群中所有pod在1min捏的cpu使用情况:
rate函数获取样本变化率
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
grafana数据源
6.导入Prometheus Dashboard
6.导入kubernetes Dashboard
把 kubernetes的Dashboard的模板导入进来,直接把JSON格式内容复制进来。
效果图:
7:官网dashboard下载地址:
https://grafana.com/grafana/dashboards