- 环境要求
- 安装
- 下载chart
- 修改父values.yaml
- 安装prometheus-operator
- helm 版本 v3.3+
- kubernetes 集群版本 1.14+
- 添加国内chart仓库
首先,添加国内的镜像仓库源
helm repo add apphub https://apphub.aliyuncs.com helm repo update
查看已经添加的 chart 库
helm repo list
- 创建命名空间 namespace
将 Prometheus 安装到独立的命名空间。
创建 namespace 的配置文件 monitoring.yaml
apiVersion: v1
kind: Namespace
metadata:
name: monitoring
labels:
name: monitoring
应用刚创建的 yaml 文件
kubectl apply -f monitoring.yaml
- 选择 prometheus-operator 版本
查询所需要的版本:
# helm search prometheus-operator -l apphub/prometheus-operator 8.7.0 0.35.0 Provides easy monitoring definitions for Kubernetes servi... apphub/prometheus-operator 8.2.2 0.34.0 Provides easy monitoring definitions for Kubernetes servi... apphub/prometheus-operator 8.2.0 0.34.0 Provides easy monitoring definitions for Kubernetes servi... apphub/prometheus-operator 8.1.2 0.34.0 Provides easy monitoring definitions for Kubernetes servi... apphub/prometheus-operator 7.1.1 0.32.0 Provides easy monitoring definitions for Kubernetes servi...
选择8.2.2版本安装。
安装 下载charthelm pull apphub/prometheus-operator --version 8.2.2 tar -xvf prometheus-operator-8.2.2.tgz && cd prometheus-operator/修改父values.yaml
alertmanager:
ingress:
enabled: true
hosts:
- alertmanager.demo.com
service:
loadBalancerSourceRanges: ["192.168.238.0/24"]
type: LoadBalancer
grafana:
# 覆盖子chart(grafana)镜像版本
image:
repository: grafana/grafana
tag: 8.1.0
enabled: true
# 启用密码
adminPassword: admin@123456
ingress:
enabled: true
hosts:
- grafana.demo.com
grafana.ini:
## 添加数据库信息,数据库配置信息将写入grafana配置文件 grafana.ini 中。
database:
type: mysql
host: 192.168.238.150
name: grafana
user: grafana
password: ZdZ5GIBh
ssl_mode: disable
prometheus:
enabled: true
service:
loadBalancerSourceRanges: ["192.168.238.0/24"]
type: LoadBalancer
ingress:
enabled: true
hosts:
- prometheus.demo.com
prometheusSpec:
# 持久化存储,实现TSDB数据持久化
storageSpec:
volumeClaimTemplate:
spec:
storageClassName: managed-nfs-storage
accessModes: ["ReadWriteOnce"]
resources:
requests:
storage: 20Gi
安装prometheus-operator
helm install prometheus -n monitoring . -f ./values.yaml
查看运行的pod
kubectl get pods -n monitoring NAME READY STATUS RESTARTS AGE alertmanager-prometheus-prometheus-oper-alertmanager-0 2/2 Running 0 4h2m prometheus-grafana-b876dcf9c-9d92n 2/2 Running 0 4h2m prometheus-kube-state-metrics-6f569f64f6-x2fxl 1/1 Running 0 4h2m prometheus-prometheus-node-exporter-4bnd2 1/1 Running 0 4h2m prometheus-prometheus-node-exporter-4j8m9 1/1 Running 0 4h2m prometheus-prometheus-node-exporter-5md8v 1/1 Running 0 4h2m prometheus-prometheus-oper-operator-7687488465-cmg9l 2/2 Running 0 4h2m prometheus-prometheus-prometheus-oper-prometheus-0 3/3 Running 1 4h1m
查看ingress
kubectl get ingress -n monitoring NAME CLASS HOSTS ADDRESS PORTS AGE prometheus-grafanagrafana.demo.com 192.168.238.156 80 20h prometheus-prometheus-oper-alertmanager alertmanager.demo.com 192.168.238.156 80 20h prometheus-prometheus-oper-prometheus prometheus.demo.com 192.168.238.156 80 20h
访问grafana
访问prometheus
访问alertmanager
参考文档
[1]: https://github.com/helm/charts/blob/master/stable/prometheus-operator/README.md



