H__D  

  在 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 工具

  参考:Helm | 安装Helm

  1. 下载 需要的版本
  2. 解压(tar -zxvf helm-v3.0.0-linux-amd64.tar.gz)
  3. 在解压目录中找到helm程序,移动到需要的目录中(mv linux-amd64/helm /usr/local/bin/helm)
  4. 验证是否安装成功,执行命令: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

  • Prometheuskubectl port-forward svc/kube-prometheus-stack-prometheus 9090 -n monitoring → 访问 http://localhost:9090

  • Grafanakubectl 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

 

posted on 2025-05-22 23:59  H__D  阅读(228)  评论(0)    收藏  举报