Prometheus社区提供了在k8s部署的三种方式:
- 部署Prometheus-Operator,自定义部署(yaml方式,本文)
- 通过kube-Prometheus部署通用监控环境
- 通过kube-prometheus-stack部署(helm方式,简化第二种方式)
上文使用了第二种方式快速部署了Prometheus集成监控方案
优点是快速和全面,但对于定制化需求不能得到满足,内置的规则和模板也比较杂
本文和后续都使用Prometheus-Operator方式集成,精简和高度定制一套属于自己的监控方案
开始部署
兼容性
Prometheus-Operator不再像kube-Prometheus需要关注版本信息
由于使用了 apiextensions.k8s.io/v1 CustomResourceDefinitions,prometheus-operator 需要 Kubernetes >= v1.16.0。
部署Prometheus-Operator
官方文档:https://prometheus-operator.dev/docs/getting-started/installation
获取最新版
1 | LATEST=$(curl -s https://api.github.com/repos/prometheus-operator/prometheus-operator/releases/latest | jq -cr .tag_name) |
下载
1 | curl -sL https://github.com/prometheus-operator/prometheus-operator/releases/download/${LATEST}/bundle.yaml |
1 | # 创建命名空间 |
部署Prometheus
rbac.yaml
1 | apiVersion: v1 |
prometheus.yaml
1 | apiVersion: monitoring.coreos.com/v1 |
部署AlertManager
alertmanager.yaml
1 | apiVersion: monitoring.coreos.com/v1 |
查看pod
1 | kubectl get pod -n monitoring |
验证服务可以访问,并且已经通过serviceMonitor
获取到alertmanager指标(下一篇详解)