Rancher Monitoring 迁移至 kube-prometheus-stack
本文永久链接: https://www.xtplayer.cn/prometheus/rancher-monitoring-migration-to-kube-prometheus-stack/
概述
根据 Rancher 官方文档说明,https://ranchermanager.docs.rancher.com/v2.15/integrations-in-rancher/monitoring-and-alerting/ ,从 Rancher v2.15 开始, Rancher monitoring 将发生重大架构变化,新的监控 Chart 由 rancher-monitoring 替换为 rancher-monitoring-dashboards。
新旧 Chart 的定位
| Chart 名称 | 状态 | 说明 |
|---|---|---|
rancher-monitoring |
旧版,已停止更新 | Rancher 仅保留它来支持已有部署,不会有新功能或修复 |
rancher-monitoring-dashboards |
新版,推荐使用 | 从 v2.15.0 起,新安装的监控都使用这个解耦后的 chart |
新 Chart 的核心特点
rancher-monitoring-dashboards 不再捆绑安装完整的监控服务组件,比如 prometheus、Grafana,而是专注于两件事:
- 提供 Grafana 仪表盘:预置了 Rancher 相关的监控面板。
- 与 Rancher UI 集成:让这些仪表盘能在 Rancher 界面中正常展示。
它不包含 kube-prometheus-stack 的镜像或组件,也不依赖 Rancher 自带的运行时,因此可以独立运行,不需要先安装旧的 rancher-monitoring。本质上,它安装的是一个只包含仪表盘的 rancher-monitoring 版本。
使用前提
要切换到新 chart,需要满足两个条件:
- 卸载旧的
rancher-monitoringchart:因为两者功能有重叠,不能共存。 - 已有 Prometheus 基础设施:新 rancher-monitoring-dashboards chart 只负责展示,数据来源需要单独安装。官方支持多种配置,但**最简单的方式是安装
kube-prometheus-stack**。
迁移前准备
检查 PersistentVolume 保留策略
对于生产环境,通常是启用了 PersistentVolumeClaim 来保存数据。为了迁移到新版本之后数据不丢失,我们需要确保迁移之后可以复用以前的 PersistentVolume。
PersistentVolume 的 persistentVolumeReclaimPolicy 分为 Delete 和 Retain。如果监控相关 PersistentVolume 的 persistentVolumeReclaimPolicy 为 Delete,删除 PersistentVolumeClaim 时 PersistentVolume 会被一同删除。为了避免这种情况发生,需要检查旧版监控组件使用的 PersistentVolume 的 persistentVolumeReclaimPolicy 是否为 Retain。
如果 persistentVolumeReclaimPolicy 不为 Retain,可以使用以下命令去修改 persistentVolumeReclaimPolicy 。
kubectl patch pv <pv-name> -p '{"spec":{"persistentVolumeReclaimPolicy":"Retain"}}' |
卸载旧版 Monitoring App
从 Rancher UI / 集群 Tools 中卸载 rancher-monitoring App,卸载的时候需要勾选 删除与此应用关联的 CRD,系统会自动删除监控相关的 CRD 资源,避免安装新版本后出现资源冲突。
删除旧版监控相关的 PersistentVolumeClaim
rancher-monitoring 和 kube-prometheus-stack 安装时,自动生成的 PersistentVolumeClaim 名称规则不一样。示例如下:
kube-prometheus-stack
prometheus: |
rancher-monitoring
prometheus: |
确保所有监控组件相关 PersistentVolume 的 persistentVolumeReclaimPolicy 为 Retain,然后删除所有旧版监控相关的 PersistentVolumeClaim。
释放并复用 Released 状态的 PersistentVolume
旧版监控组件相关的 PersistentVolumeClaim 被删除,因为 PersistentVolume 的 persistentVolumeReclaimPolicy 为 Retain,PersistentVolume 状态将变为 Released。
为了能够复用该 PersistentVolume,执行下面命令移除其绑定声明引用,使其变为可用状态。
kubectl patch pv <PV名称> --type=json -p='[{"op":"remove","path":"/spec/claimRef"}]' |
创建 kube-prometheus-stack 能识别的 PersistentVolumeClaim
为了让 kube-prometheus-stack 安装时可以复用现有的 PersistentVolume,需要手动创建 PersistentVolumeClaim 并引用现有的 PersistentVolume。手动创建的 PersistentVolumeClaim 名称需要为 prometheus-kube-prometheus-stack-prometheus-db-prometheus-kube-prometheus-stack-prometheus-0 和 kube-prometheus-stack-grafana 。这样后续安装 kube-prometheus-stack ,将自动引用现有的 PersistentVolumeClaim。
在 Rancher UI \ 存储 \ PersistentVolumeClaim 页面,点击右侧创建按钮。
卷声明\源 选择使用现有的持久卷。
右侧持久卷选择复用的 PersistentVolume,此处可以根据原有 PersistentVolume 的大小来区分它是对应的哪个服务, 需要小心谨慎。
存储大小需要确保与 PersistentVolume 大小相同。
PersistentVolumeClaim 创建完成后,会自动与该 PersistentVolume 完成绑定。

安装 kube-prometheus-stack
添加 chart 仓库
因为新版本监控 rancher-monitoring-dashboards Chart 中只包含展示相关的图表信息,数据收集组件(例如 prometheus 等)不再自动部署,需要手动安装。
helm repo add prometheus-community https://prometheus-community.github.io/helm-charts |
自定义 value 配置
可以根据自己需要自定义 value 配置
namespaceOverride: cattle-monitoring-system |
安装 kube-prometheus-stack
将上一步骤的 value 配置保存为 values.yaml 文件,然后执行以下命令进行安装。
helm upgrade --install kube-prometheus-stack prometheus-community/kube-prometheus-stack \ |
安装 rancher-monitoring-dashboards
使用 Rancher UI 部署 Monitoring Dashboards Chart:
- 导航到 Cluster Management。
- 选择你的集群并点击 Explore 按钮。
- 在左侧菜单中选择 Apps > Charts。
- 找到 Monitoring Dashboards chart,点击 Install。
- 在 Project 下拉框选择你要安装到的项目名称,点击 Next。
- 根据实际集群类型进行选择,本文示例为 RKE2 集群,因此选择 RKE2,完成后点击 Install。
安装 PushProx 收集控制平面组件监控数据
默认情况下,kube-prometheus-stack 不会主动抓取 kubeEtcd、kubeControllerManager、kubeScheduler 或 kubeProxy 的指标。若要从这些组件导出指标,则必须额外部署 PushProx。
此部分的操作,请参考论坛文章: https://forums.rancher.cn/t/rancher-v2-15-kube-prometheus-stack-monitoring-dashboards-rke2/5297#rke2-pushprox-5


