kubernetes 1.33.4最新版部署prometheus
拉取配置文件
git clone -b main https://github.com/prometheus-operator/kube-prometheus.git #根据readme.md选择合适的版本 #prometheus-operator项目为核心,kube-prometheus项目才是一套完整的系统
拉取镜像
查看镜像
cd manifests/
grep "image:" ./*
手动预拉取,或更改为国内镜像地址
docker pull quay.io/prometheus/alertmanager:v0.28.1
docker pull quay.io/prometheus/blackbox-exporter:v0.27.0
docker pull ghcr.io/jimmidyson/configmap-reload:v0.15.0
docker pull quay.io/brancz/kube-rbac-proxy:v0.19.1
docker pull grafana/grafana:12.1.0
docker pull registry.k8s.io/kube-state-metrics/kube-state-metrics:v2.16.0
docker pull quay.io/brancz/kube-rbac-proxy:v0.19.1
docker pull quay.io/brancz/kube-rbac-proxy:v0.19.1
docker pull quay.io/prometheus/node-exporter:v1.9.1
docker pull quay.io/brancz/kube-rbac-proxy:v0.19.1
docker pull registry.k8s.io/prometheus-adapter/prometheus-adapter:v0.12.0
docker pull quay.io/prometheus-operator/prometheus-operator:v0.85.0
docker pull quay.io/brancz/kube-rbac-proxy:v0.19.1
docker pull quay.io/prometheus/prometheus:v3.5.0
部署
kubectl create -f manifests/setup
kubectl create -f manifests/
查看pod
[root@m3 ~]# kubectl get pod -A |grep mo
monitoring alertmanager-main-0 2/2 Running 0 131m
monitoring alertmanager-main-1 2/2 Running 0 131m
monitoring alertmanager-main-2 2/2 Running 0 131m
monitoring blackbox-exporter-6d86f57b57-xwswx 3/3 Running 0 132m
monitoring grafana-7c68d76c67-zhb82 1/1 Running 0 132m
monitoring kube-state-metrics-c66bdcf9c-24fv2 3/3 Running 0 132m
monitoring node-exporter-28dpn 2/2 Running 0 132m
monitoring node-exporter-49h2v 2/2 Running 0 15m
monitoring node-exporter-fr9zh 2/2 Running 0 132m
monitoring node-exporter-kfk7r 2/2 Running 0 132m
monitoring node-exporter-nwhjm 2/2 Running 0 132m
monitoring prometheus-adapter-599c88b6c4-682hz 1/1 Running 0 132m
monitoring prometheus-adapter-599c88b6c4-n7ftz 1/1 Running 0 132m
monitoring prometheus-k8s-0 2/2 Running 0 131m
monitoring prometheus-k8s-1 2/2 Running 0 131m
monitoring prometheus-operator-6fccbfd7fb-cdqj4 2/2 Running 0 132m
配置ingress
kubectl apply -f ingress-prom.yaml
# cat ingress-prom.yaml
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: prometheus-web
namespace: monitoring
annotations:
# 可选:添加 Traefik 特定配置
# 例如启用 TLS、中间件等
# traefik.ingress.kubernetes.io/router.middlewares: monitoring-compress@kubernetescrd
spec:
ingressClassName: nginx # 指定使用 Traefik IngressClass
rules:
- host: prometheus.example.com
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: prometheus-k8s
port:
number: 9090
---
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: alertmanager-web
namespace: monitoring
spec:
ingressClassName: nginx
rules:
- host: alertmanager.example.com
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: alertmanager-main
port:
number: 9093
---
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: grafana-web
namespace: monitoring
spec:
ingressClassName: nginx
rules:
- host: grafana.example.com
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: grafana
port:
number: 3000
设置ingress访问grafana的权限
参考 grafana无法通过ingress代理
url:
本地设置hosts
访问web页面
http://grafana.example.com/
prometheus数据默认会自动配置好
设置模板
使用神秘代码:16098 即可显示node健康信息
持久化
默认不会持久化保存监控数据,数据库的pod重启会丢失监控历史数据
pass