1. 添加 Helm 仓库
bash
helm repo add prometheus-community https://prometheus-community.github.io/helm-charts
helm repo update
2. 创建命名空间(可选,推荐独立)
bash
kubectl create namespace monitoring
3. 安装 kube-prometheus-stack
bash
helm install prometheus prometheus-community/kube-prometheus-stack \
--namespace monitoring \
--set grafana.adminPassword=admin \
--set prometheus.prometheusSpec.serviceMonitorSelectorNilUsesHelmValues=false
-
grafana.adminPassword:设置 Grafana admin 密码 -
第二个 set 项:允许 ServiceMonitor 发现集群内其他 Helm 发布的服务,方便后续自动监控
你也可以自定义一个
values.yaml文件,通过-f values.yaml传入。
4. 检查部署状态
bash
kubectl get all -n monitoring
稍等几分钟,所有 Pod 进入 Running 状态。
5. 访问 Prometheus UI(可选端口转发)
bash
kubectl port-forward -n monitoring svc/prometheus-kube-prometheus-prometheus 9090:9090
浏览器打开 http://localhost:9090
6. 访问 Grafana
bash
kubectl port-forward -n monitoring svc/prometheus-grafana 80:80
浏览器 http://localhost,用户名 admin,密码为你设置的(如 admin)
补充:如果你不想用 Helm,纯 YAML 部署
-
克隆官方 kube-prometheus 项目
bash
git clone https://github.com/prometheus-operator/kube-prometheus.git cd kube-prometheus -
应用清单
bash
kubectl apply --server-side -f manifests/setup kubectl apply -f manifests/ -
删除(如需清理)
bash
kubectl delete --ignore-not-found=true -f manifests/ -f manifests/setup
部署后验证
-
查看 target 状态:Prometheus UI → Status → Targets
-
查看 Grafana 仪表盘:默认有 Kubernetes / Nodes / Pods 等预置面板
常见问题提示
-
权限不足:确保你有 cluster-admin 权限或该命名空间下的足够 RBAC
-
存储:如果未配置默认 StorageClass,Prometheus 的 PVC 会处于 Pending 状态,需要先配置存储类或修改 values 使用 emptyDir(临时)
-
资源限制:生产环境建议调整 CPU/内存 requests 和 limits
如需更细粒度的配置(如持久化、服务暴露、告警规则),可以进一步提供你的集群信息,我可以给出定制化建议。