本文在于指导如何对k8s的监控GPA(Grafana,prometheus以及alertmanager)进行安装部署。
1. 介绍
Prometheus
在真正部署Prometheus之前,应了解一下Prometheus的各个组件之间的关系及作用:
1)MertricServer:是k8s集群资源使用情况的聚合器,收集数据给K8s集群内使用,如:kubectl,hpa,scheduler;
2)PrometheusOperator:是一个系统检测和警报工具箱,用来存储监控数据;
3)NodeExporter:用于各node的关键度量指标状态数据;
4)kubeStateMetrics:收集k8s集群内资源对象数据,指定告警规则;
5)Prometheus:采用pull方式收集apiserver,scheduler,controller-manager,kubelet组件数据,通过http协议传输;
6)Grafana:是可视化数据统计和监控平台;
2. 安装部署步骤
安装git工具
#yum install git -y
下载prometheus
#cd /opt
#git clone GitHub - prometheus-operator/kube-prometheus: Use Prometheus to monitor Kubernetes and applications running on Kubernetes
下载到主机的/opt目录下
注意:k8s的版本v1.16.0对应的kube-prometheus版本为release-0.3
查看manifests
#cd /opt/kube-prometheus-release-0.3/manifests
修改镜像源
国外镜像源某些镜像无法拉取,需要修改prometheus-operator,prometheus,alertmanager,kube-state-metrics,node-exporter,prometheus-adapter的镜像源为国内镜像源
#sed -i 's/quay.io/quay.mirrors.ustc.edu.cn/g' setup/prometheus-operator-deployment.yaml
#sed -i 's/quay.io/quay.mirrors.ustc.edu.cn/g' prometheus-prometheus.yaml
#sed -i 's/quay.io/quay.mirrors.ustc.edu.cn/g' alertmanager-alertmanager.yaml
#sed -i 's/quay.io/quay.mirrors.ustc.edu.cn/g' kube-state-metrics-deployment.yaml
#sed -i 's/quay.io/quay.mirrors.ustc.edu.cn/g' node-exporter-daemonset.yaml
#sed -i 's/quay.io/quay.mirrors.ustc.edu.cn/g' prometheus-adapter-deployment.yaml
修改service类型
为了可以从外部访问prometheus,alertmanager,grafana,需要修改promethes,alertmanager,grafana的service类型为NodePort类型。
修改prometheus的service
修改prometheus的service,修改成如图所示新增部分:
#vim prometheus-service.yaml
修改alertmanager的service
修改alertmanager的service,修改成如图所示新增部分:
#vim alertmanager-service.yaml
修改grafana的service
修改grafana的service,修改成如图所示新增部分:
#vim grafana-service.yaml
安装kube-prometheus
安装CRD和prometheus-operator
[root@k8s-master manifests]# kubectl apply -f setup/
查看prometheus-operator状态
[root@k8s-master manifests]# kubectl get pod -n monitoring
安装GPA
安装prometheus, alertmanager, grafana, kube-state-metrics, node-exporter等资源
[root@k8s-master manifests]# kubectl apply -f .
查看pods状态
下载镜像时间比较长,约半小时后,查看命名空间monitoring下面的pod状态,直到monitoring命名空间下所有pod都变为running状态,表现安装成功。
[root@k8s-master1 manifests]# kubectl get pod -n monitoring
访问GPA
访问prometheus
浏览器打开http://ip:30090,ip为k8s的node节点的IP
访问alert-manager
浏览器打开http://ip:30093,ip为k8s的node节点的IP
访问grafana
浏览器打开http://IP:32000 ip为k8s的node节点的IP
用户名/密码:admin/admin
3. 部署调试过程记录
查看pods状态
# kubectl get pods -n monitoring
Grafana:
数据源配置:
名称:prometheus
url:http://prometheus-k8s.monitoring.svc:9090
导入模板:
模板下载地址:Dashboards | Grafana Labs
模板id:315