k8s部署Prometheus
这里用选择192.168.31.73做NFS服务器,持久存储选择NFS,创建pv动态供给
yum install -y nfs-utils rpcbind ##所有节点都要装
cat >>/etc/exports<<EOF
/ifs/kubernetes *(rw,no_root_squash)
EOF
[root@k8s-node2 ~]# mkdir -p /ifs/kubernetes
[root@k8s-node2 ~]# systemctl start nfs
[root@k8s-node2 ~]# systemctl enable nfs
[root@k8s-master ~]# mount -t nfs 192.168.31.73:/ifs/kubernetes /mnt
#yaml文件有点多有需要再贴上。。。。
# deployment.yaml 这里只需要把ip改成NFS服务器ip
prometheus-deployment.yaml # 部署Prometheus
prometheus-configmap.yaml # Prometheus配置文件,主要配置Kubernetes服务发现
prometheus-rules.yaml # Prometheus告警规则
grafana.yaml # 仪表盘展示
node-exporter.yml # 采集节点资源,通过DaemonSet方式部署,并收集
kube-state-metrics.yaml # 采集K8s资源,并声明让Prometheus收集
alertmanager-configmap.yaml # 配置文件,配置发件人和收件人
alertmanager-deployment.yaml # 部署Alertmanager告警组
[root@k8s-master ~]# kubectl get svc -n ops -o wide
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE SELECTOR
grafana NodePort 10.102.196.113 <none> 80:30030/TCP 3m11s app=grafana
prometheus NodePort 10.109.127.204 <none> 9090:30090/TCP 52m k8s-app=prometheus
[root@k8s-master ~]# kubectl get pod -n ops -o wide
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
grafana-757fcd5f7c-22stz 1/1 Running 0 3m30s 10.244.36.76 k8s-node1 <none> <none>
prometheus-5867b885cf-446xn 2/2 Running 0 52m 10.244.169.137 k8s-node2 <none> <none>
使用nodeport暴露30090####192.168.31.73:30090访问Prometheus
192.168.31.72:30030访问grafana
#导入全部K8S集群资源监控的json。
vi alertmanager-configmap.yaml
配置邮箱地址 这里使用QQ邮箱
kubectl run nginx3 --image=1212121 ##run一个失败的pod测试触发告警
配置钉钉机器人webhook
vi dingding-webhook-deployment.yaml
kubectl apply -f dingding-webhook-deployment.yaml
kubectl apply -f alertmanager-dingding-configmap.yaml