Prometheus社区提供了在k8s部署的三种方式:
- 部署Prometheus-Operator,自定义部署
- 通过kube-Prometheus部署通用监控环境(yaml方式,本文)
- 通过kube-prometheus-stack部署(helm方式,简化第二种方式)
后两者都是基于第一种Prometheus-Operator的扩展版,内置了监控规则和模板
本文先使用第二种方式快速部署
开始部署
版本信息
kube-prometheus stack | Kubernetes 1.27 | Kubernetes 1.28 | Kubernetes 1.29 | Kubernetes 1.30 | Kubernetes 1.31 | Kubernetes 1.32 | Kubernetes 1.33 |
---|---|---|---|---|---|---|---|
release-0.13 |
✔ | ✔ | x | x | x | x | x |
release-0.14 |
x | x | ✔ | ✔ | ✔ | x | x |
release-0.15 |
x | x | x | x | ✔ | ✔ | ✔ |
main |
x | x | x | x | ✔ | ✔ | ✔ |
拉取代码
手动下载:下载地址
1 | git clone https://github.com/prometheus-operator/kube-prometheus.git -b release-0.14 |
部署kube-Prometheus
1 | kubectl apply --server-side -f manifests/setup |
部署Prometheus、alertmanager、grafana、kube-state-metrics、Prometheus-adapter、blackbox-exporter、node-exporter
这是kube-Prometheus基于Prometheus-operator为通用k8s环境提供的一整套监控方案
这整套方案都配置了PrometheusRule告警规则
并且kube-Prometheus为grafana内置了多个dashboard
1 | kubectl apply -f manifests/ |
镜像问题
镜像查询:https://docker.aityp.com/
打tag方式
1 | crictl pull swr.cn-north-4.myhuaweicloud.com/ddn-k8s/registry.k8s.io/kube-state-metrics/kube-state-metrics:v2.13.0 |
yaml修改镜像地址
进kube-prometheus/manifests
对应的yaml文件中修改即可
外部访问
这套方案应用了networkPolicy,取消即可
1 | kubectl delete -f prometheus-networkPolicy.yaml -f grafana-networkPolicy.yaml -f alertmanager-networkPolicy.yaml |
修改service
1 | kubectl edit svc -n monitoring prometheus-k8s |
1 | type: ClusterIP |
持久化存储
Prometheus
修改kube-prometheus/manifests/prometheus-prometheus.yaml
文件
1 | storage: |
Alertmanager
与Prometheus一样
修改kube-prometheus/manifests/alertmanager-alertmanager.yaml
文件
1 | storage: |
grafana
修改kube-prometheus/manifests/grafana-deployment.yaml
文件
1 | volumes: |
底部新增
1 | --- |
应用更改
1 | kubectl apply -f prometheus-prometheus.yaml |