选择kube-prometheus版本

k8s集群版本是1.22.x

5个节点

性能测试:k8s集群监控环境搭建(kube-prometheus)_javascript


说明:如果你电脑配置低,也可以1个master节点,2个node节点

3个节点

性能测试:k8s集群监控环境搭建(kube-prometheus)_git_02



Kube-Prometheus地址:​​https:///prometheus-operator/kube-prometheus/​


找到和自己Kubernetes版本对应的版本

性能测试:k8s集群监控环境搭建(kube-prometheus)_微服务_03


性能测试:k8s集群监控环境搭建(kube-prometheus)_git_04


选择0.9

克隆:git clone -b release-0.9 https:///prometheus-operator/kube-prometheus.git


安装prometheus-operator

cd kube-prometheus/

cd manifests/

性能测试:k8s集群监控环境搭建(kube-prometheus)_javascript_05


性能测试:k8s集群监控环境搭建(kube-prometheus)_javascript_06


安装Prometheus Operator:kubectl create -f setup/

下面可以看到,ns是monitoring

性能测试:k8s集群监控环境搭建(kube-prometheus)_git_07


查看Operator容器状态:kubectl get po -n monitoring

2/2才表示可用

性能测试:k8s集群监控环境搭建(kube-prometheus)_微服务_08


为什么是两个容器呢?

cd setup

vim prometheus-operator-deployment.yaml

可以看到,是1个副本,一个pod里面两个容器 

性能测试:k8s集群监控环境搭建(kube-prometheus)_git_09


查看信息,镜像拉取失败

kubectl describe po prometheus-operator-75d9b475d9-wslbm -n monitoring

性能测试:k8s集群监控环境搭建(kube-prometheus)_git_10


 性能测试:k8s集群监控环境搭建(kube-prometheus)_git_11

 pod在master02上

性能测试:k8s集群监控环境搭建(kube-prometheus)_git_12


可以在master02上,单独拉取

docker pull quay.io/prometheus-operator/prometheus-operator:v0.49.0

性能测试:k8s集群监控环境搭建(kube-prometheus)_微服务_13


然后,自动变成running了

性能测试:k8s集群监控环境搭建(kube-prometheus)_git_14


创建prometheus技术栈(部署prometheus)

kubectl create -f .

因为要下载镜像,这一步很耗时

image: quay.io/prometheus/alertmanager:v0.22.2
image: quay.io/prometheus/prometheus:v2.29.1
image: /kube-state-metrics/kube-state-metrics:v2.1.1
image: quay.io/brancz/kube-rbac-proxy:v0.11.0


查看Prometheus容器状态

性能测试:k8s集群监控环境搭建(kube-prometheus)_git_15


可以看到,每个节点上都有一个node-exporter,那是因为

vim node-exporter-daemonset.yaml

性能测试:k8s集群监控环境搭建(kube-prometheus)_javascript_16


查看服务:kubectl get svc -n monitoring

性能测试:k8s集群监控环境搭建(kube-prometheus)_git_17



暴露Prometheus端口

查看Prometheus的Service:kubectl get svc prometheus-k8s -n monitoring


将Prometheus的Service的type改成NodePort类型:kubectl  edit svc prometheus-k8s   -n monitoring


再次查看Prometheus的Service:kubectl get svc prometheus-k8s -n monitoring

对外暴露了一个端口32458

性能测试:k8s集群监控环境搭建(kube-prometheus)_git_18


访问:http://192.168.117.142:32458

性能测试:k8s集群监控环境搭建(kube-prometheus)_微服务_19


 性能测试:k8s集群监控环境搭建(kube-prometheus)_git_20



性能测试:k8s集群监控环境搭建(kube-prometheus)_git_21



性能测试:k8s集群监控环境搭建(kube-prometheus)_git_22



性能测试:k8s集群监控环境搭建(kube-prometheus)_微服务_23


性能测试:k8s集群监控环境搭建(kube-prometheus)_git_24

查询数据

性能测试:k8s集群监控环境搭建(kube-prometheus)_javascript_25


暴露Grafana端口

查看Grafana的Service:kubectl get svc grafana -n monitoring

性能测试:k8s集群监控环境搭建(kube-prometheus)_微服务_26


将Grafana的Service的type改成NodePort类型:kubectl edit svc grafana -n monitoring


再次查看Grafana的Service,对外暴露了一个端口32718

kubectl get svc grafana -n monitoring

性能测试:k8s集群监控环境搭建(kube-prometheus)_git_27


安装了kube-proxy服务的节点都可以访问(grafana的pod必须是running状态):

​http://192.168.117.142:32718/login​

​http://192.168.117.143:32718/login​

​http://192.168.117.144:32718/login​

​http://192.168.117.145:32718/login​

​http://192.168.117.146:32718/login​


Grafana默认登录的账号密码为admin/admin

性能测试:k8s集群监控环境搭建(kube-prometheus)_微服务_28


已经有数据源

性能测试:k8s集群监控环境搭建(kube-prometheus)_微服务_29




性能测试:k8s集群监控环境搭建(kube-prometheus)_微服务_30


性能测试:k8s集群监控环境搭建(kube-prometheus)_javascript_31


 性能测试:k8s集群监控环境搭建(kube-prometheus)_git_32


监控效果图

性能测试:k8s集群监控环境搭建(kube-prometheus)_javascript_33


监控node

性能测试:k8s集群监控环境搭建(kube-prometheus)_git_34



监控指定命名空间下的pod,比如:kube-system

性能测试:k8s集群监控环境搭建(kube-prometheus)_微服务_35


监控指定node下的pod

性能测试:k8s集群监控环境搭建(kube-prometheus)_git_36



添加其它模板

1 Node Exporter for Prometheus Dashboard CN v20201010 中文 ​​https://grafana.com/grafana/dashboards/8919​

英文 ​​https://grafana.com/grafana/dashboards/11074​


5个节点

性能测试:k8s集群监控环境搭建(kube-prometheus)_微服务_37


3个节点

性能测试:k8s集群监控环境搭建(kube-prometheus)_微服务_38


性能测试:k8s集群监控环境搭建(kube-prometheus)_javascript_39


gcr镜像拉取失败的解决方案


【性能项目实战:jmeter+k8s+微服务+skywalking+efk】汇总

详见​



============================= 提升自己 ==========================

如有侵权,请联系删除。

============================= 升职加薪 ==========================