本文在于指导如何对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

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐