KubeSphere 内置 Prometheus 栈 + CRD + Operator + Grafana 安装指南
一、环境信息
- Kubernetes 版本:1.23.17
- KubeSphere 版本:3.3.2
- Prometheus Operator 部署于
kubesphere-monitoring-system命名空间
⚠️ 注意:不同 K8s 或 KubeSphere 版本可能对 CRD 或 Operator 版本有细微差异,安装前请确认兼容性。
二、KubeSphere 内置监控体系概览
KubeSphere 内置了完整的监控体系,基于 Prometheus Operator 构建,实现:
- Metrics 收集:节点、Pod、应用服务指标
- 告警系统:Alertmanager 集成
- 可视化:Grafana(默认未安装,可单独安装)
默认安装中:
- Prometheus、Alertmanager、Node Exporter、Kube-state-metrics 等组件已部署
- Grafana 需单独安装
- Prometheus Operator 负责 CRD 对象的管理与资源调度
三、CRD 的位置与作用
1. CRD 文件位置
在 KubeSphere 安装 Pod 中:
ks-installer的pod内:/kubesphere/installer/roles/ks-monitor/files/prometheus/prometheus-operator$
主要文件列表:
prometheus-operator-0alertmanagerConfigCustomResourceDefinition.yaml
prometheus-operator-0alertmanagerCustomResourceDefinition.yaml
prometheus-operator-0podmonitorCustomResourceDefinition.yaml
prometheus-operator-0probeCustomResourceDefinition.yaml
prometheus-operator-0prometheusCustomResourceDefinition.yaml
prometheus-operator-0prometheusruleCustomResourceDefinition.yaml
prometheus-operator-0servicemonitorCustomResourceDefinition.yaml
prometheus-operator-0thanosrulerCustomResourceDefinition.yaml
...
2. CRD 的作用
- CRD(CustomResourceDefinition) 定义了 Kubernetes 集群中可用的自定义资源类型,例如
Kind: Prometheus、Kind: ServiceMonitor、Kind: PodMonitor等 prometheus-operator-0prometheusCustomResourceDefinition.yaml并不是 Prometheus 实例本身,而是 定义了Kind: Prometheus类型,用于 Operator 创建 Prometheus 实例- 安装 Operator 时,这些 CRD 会被注册到集群中,使得用户可以通过
kubectl get prometheus等命令操作自定义资源
kubectl get crd | grep monitoring.coreos.com
四、Prometheus Operator 的作用
Prometheus Operator 是监控体系的核心控制器:
-
管理 Prometheus 实例
- 监听
Kind: Prometheus的 CRD 创建事件,自动创建 Pod、Service、PVC、ConfigMap 等资源
- 监听
-
自动发现监控对象
- 通过
ServiceMonitor和PodMonitor自动抓取服务和节点指标
- 通过
-
管理 Alertmanager
- 部署、配置和维护告警系统
-
保证版本兼容
- 协调 Prometheus、Alertmanager、Node Exporter、Kube-state-metrics 等组件版本
-
扩展功能
- 支持 Thanos、黑盒探针(Probe)、PodAffinity/NodeAffinity 等配置
总结:
- CRD 定义可用资源类型
- Operator 监听 CRD 并在集群中实际创建/管理资源
五、内置监控组件版本
通过镜像信息分析:
| 组件 | 镜像 | 版本 |
|---|---|---|
| Prometheus Operator | kubesphere/prometheus-operator | v0.55.1 |
| Prometheus | prom/prometheus | v2.34.0 |
| Alertmanager | prom/alertmanager | v0.23.0 |
| Node Exporter | prom/node-exporter | v1.3.1 |
| Kube-state-metrics | kubesphere/kube-state-metrics | v2.5.0 |
| Thanos Ruler | thanosio/thanos | v0.25.2 |
对应 kube-prometheus-stack 版本:
Prometheus Operator v0.55.1 + Prometheus v2.34.0 → kube-prometheus-stack v33.x
⚠️ KubeSphere 将 Helm Chart 拆解为 YAML 模板安装,无直接 Chart.yaml 文件
六、Grafana 独立安装
KubeSphere 内置监控栈未自动部署 Grafana,需要手动安装。
1. 添加 Helm 仓库
helm repo add grafana https://grafana.github.io/helm-charts
helm repo update
# 查询 grafana/grafana 所有版本
helm search repo grafana/grafana --versions
2. 安装 Grafana
使用自定义名称 howlaisi-grafana 并设置 NodePort 为 30980:
# 下载特定版本
helm pull grafana/grafana --version 10.1.4
# 解压
tar -zxvf grafana-10.1.4.tgz
# 安装
helm install howlaisi-grafana ./grafana \
-n kubesphere-monitoring-system \
--set persistence.enabled=true \
--set adminPassword='admin123' \
--set service.type=NodePort \
--set service.nodePort=30980
提供grafana-10.1.4.tgz文件:grafana-10.1.4.tar.gz
3. 配置 Prometheus 数据源
在 Grafana Web 界面添加数据源:
- Name: Prometheus
- URL:
http://prometheus-operated.kubesphere-monitoring-system.svc:9090 - Access: Server

完成后即可使用 Grafana 可视化 KubeSphere 集群指标。
七、总结
- KubeSphere 内置监控栈基于 Prometheus Operator,拆解为 YAML 模板部署
- CRD 定义 Prometheus、Alertmanager、ServiceMonitor、PodMonitor 等资源类型
- Operator 监听 CRD 并管理实际资源,保证组件版本兼容
- 内置组件版本对应 kube-prometheus-stack v33.x
- Grafana 需单独安装,可通过 Helm 设置名称和 NodePort,并连接 Prometheus 数据源实现可视化
评论区