- 前期准备
- 安装git
[root@node1 ~]# yum install git
- 下载Prometheus+Grafana的yaml配置文件
git clone https://github.com/redhatxl/k8s-prometheus-grafana.git
- 安装Prometheus+Grafana
- daemonset方式部署node-exporter组件
[root@node1 ~]# cd k8s-prometheus-grafana/
[root@node1 k8s-prometheus-grafana]# kubectl apply -f node-exporter.yaml

k8s从1.16开始,ApiVersion版本不再是beta版本,成为正式版,所以需要修改api的版本,否则k8s就会报错
还有一个问题就是Deployment,daemonSet等控制器的spec里面必须要和selector的参数相匹配,否则也会报错,缺少selector所需参数
修改如下

- 部署prometheus组件
[root@node1 ~]# kubectl create -f k8s-prometheus-grafana/prometheus/rbac-setup.yaml
[root@node1 ~]# kubectl create -f k8s-prometheus-grafana/prometheus/configmap.yaml
[root@node1 ~]# kubectl create -f k8s-prometheus-grafana/prometheus/prometheus.deploy.yml
[root@node1 ~]# kubectl create -f k8s-prometheus-grafana/prometheus/prometheus.svc.yml


- 部署grafana组件
[root@node1 ~]# kubectl create -f k8s-prometheus-grafana/grafana/grafana-deploy.yaml
[root@node1 ~]# kubectl create -f k8s-prometheus-grafana/grafana/grafana-svc.yaml
[root@node1 ~]# kubectl create -f k8s-prometheus-grafana/grafana/grafana-ing.yaml


- 存在的问题
由于coredns解析有问题,导致Prometheus的服务连接不上kubernetes的443管理端口,暂时修改为kubernetes的固定地址
修改后如下
Prometheus暂时显示正常
其中Prometheus显示node-exporter的pods显示要在daemonSet下添加注解
---
apiVersion: apps/v1
kind: DaemonSet
metadata:
name: node-exporter
namespace: kube-system
labels:
k8s-app: node-exporter
spec:
selector:
matchLabels:
k8s-app: node-exporter
template:
metadata:
annotations: #new
prometheus.io/scrape: 'true' #new
prometheus.io/port: '9100' #new
prometheus.io/path: '/metrics' #new
labels:
k8s-app: node-exporter
spec:
containers:
- image: prom/node-exporter
name: node-exporter
ports:
- containerPort: 9100
protocol: TCP
name: http
---
apiVersion: v1
kind: Service
metadata:
labels:
k8s-app: node-exporter
name: node-exporter
namespace: kube-system
spec:
ports:
- name: http
port: 9100
nodePort: 31672
protocol: TCP
type: NodePort
selector:
k8s-app: node-exporter
- grafana新增一个Template即可,下载地址在这里

- 在配置DataSource也需要注意,coredns的问题,需要指定Prometheus的service地址





