在 Kubernetes (k8s) 集群中部署监控系统是确保集群健康、性能稳定和故障快速定位的关键步骤。以下是基于 Prometheus + Grafana 的完整监控部署方案(使用 kube-prometheus-stack Helm Chart),涵盖核心组件、配置优化和关键注意事项。
1. 核心监控组件
| 组件 | 作用 |
|---|---|
| Prometheus | 时序数据库,负责指标采集、存储和告警规则评估。 |
| Grafana | 可视化仪表盘,展示 Prometheus 收集的指标。 |
| Alertmanager | 处理 Prometheus 的告警通知,支持去重、分组和多种通知渠道(如 Slack/邮件)。 |
| Node Exporter | 采集节点(物理机/虚拟机)的 CPU、内存、磁盘等基础指标。 |
| kube-state-metrics | 生成 Kubernetes 资源(Pod、Deployment 等)的状态指标。 |
| Prometheus Operator | 自动化管理 Prometheus 的配置、服务发现和告警规则。 |
2. 部署步骤(使用 Helm)
本例k8s版本是 1.28.0
2.1 安装 Helm 工具
- 下载 需要的版本
- 解压(
tar -zxvf helm-v3.0.0-linux-amd64.tar.gz) - 在解压目录中找到
helm程序,移动到需要的目录中(mv linux-amd64/helm /usr/local/bin/helm) - 验证是否安装成功,执行命令:helm version
2.2 添加 Helm Repo 仓库
helm repo add prometheus-community https://prometheus-community.github.io/helm-charts helm repo update
网络问题,可以离线下载 Helm Chart 及其依赖
# 历史版本下载地址 https://github.com/prometheus-community/helm-charts/tags # 版本选择参考 https://github.com/prometheus-operator/kube-prometheus # 下载得到 kube-prometheus-stack-70.0.0.tgz # 解压kube-prometheus-stack tar -zxvf kube-prometheus-stack-70.0.0.tgz # 查看需要的镜像(可以离线在上上传到节点上)
helm template kube-prometheus-stack | grep image
离线下载镜像
# 使用可上网机器下载 docker pull registry.k8s.io/ingress-nginx/kube-webhook-certgen:v1.5.1 # 打包镜像 docker save -o certgen.tar registry.k8s.io/ingress-nginx/kube-webhook-certgen:v1.5.1 # 到目标节点上导入镜像 sudo ctr -n k8s.io image import certgen.tar
2.3 安装 kube-prometheus-stack
helm install kube-prometheus-stack prometheus-community/kube-prometheus-stack \ --namespace monitoring \ --create-namespace \ --version <CHART_VERSION> # 替换为目标版本号
# 离线安装 helm install kube-prometheus-stack ./kube-prometheus-stack \ --namespace monitoring \ --create-namespace \ --debug
3. 验证部署
3.1 检查 Pod 状态
kubectl get pods -n monitoring
3.2 访问 Web UI
-
Prometheus:
kubectl port-forward svc/kube-prometheus-stack-prometheus 9090 -n monitoring→ 访问http://localhost:9090 -
Grafana:
kubectl port-forward svc/kube-prometheus-stack-grafana 3000 -n monitoring→ 访问http://localhost:3000(默认账号admin/admin)


4. 关键配置优化
4.1 数据持久化
-
Prometheus: 必须配置 PVC,否则重启后数据丢失。
-
Grafana: 若需持久化仪表盘,挂载 PVC 到
/var/lib/grafana。
5. 删除 kube-prometheus-stack
5.1 删除RELEASE
helm uninstall [RELEASE_NAME] helm uninstall kube-prometheus-stack -n monitoring
删除CRD
kubectl delete crd alertmanagerconfigs.monitoring.coreos.com kubectl delete crd alertmanagers.monitoring.coreos.com kubectl delete crd podmonitors.monitoring.coreos.com kubectl delete crd probes.monitoring.coreos.com kubectl delete crd prometheusagents.monitoring.coreos.com kubectl delete crd prometheuses.monitoring.coreos.com kubectl delete crd prometheusrules.monitoring.coreos.com kubectl delete crd scrapeconfigs.monitoring.coreos.com kubectl delete crd servicemonitors.monitoring.coreos.com kubectl delete crd thanosrulers.monitoring.coreos.com

浙公网安备 33010602011771号