目 录CONTENT

文章目录

KubeSphere 内置 Prometheus 栈 + CRD + Operator + Grafana 安装指南

Administrator
2025-11-18 / 0 评论 / 0 点赞 / 2 阅读 / 0 字 / 正在检测是否收录...
温馨提示:
部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

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: PrometheusKind: ServiceMonitorKind: 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 是监控体系的核心控制器:

  1. 管理 Prometheus 实例

    • 监听 Kind: Prometheus 的 CRD 创建事件,自动创建 Pod、Service、PVC、ConfigMap 等资源
  2. 自动发现监控对象

    • 通过 ServiceMonitorPodMonitor 自动抓取服务和节点指标
  3. 管理 Alertmanager

    • 部署、配置和维护告警系统
  4. 保证版本兼容

    • 协调 Prometheus、Alertmanager、Node Exporter、Kube-state-metrics 等组件版本
  5. 扩展功能

    • 支持 Thanos、黑盒探针(Probe)、PodAffinity/NodeAffinity 等配置

总结:

  • CRD 定义可用资源类型
  • Operator 监听 CRD 并在集群中实际创建/管理资源

五、内置监控组件版本

通过镜像信息分析:

组件镜像版本
Prometheus Operatorkubesphere/prometheus-operatorv0.55.1
Prometheusprom/prometheusv2.34.0
Alertmanagerprom/alertmanagerv0.23.0
Node Exporterprom/node-exporterv1.3.1
Kube-state-metricskubesphere/kube-state-metricsv2.5.0
Thanos Rulerthanosio/thanosv0.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
    howlaisi-prometheus-datasource
    完成后即可使用 Grafana 可视化 KubeSphere 集群指标。

七、总结

  1. KubeSphere 内置监控栈基于 Prometheus Operator,拆解为 YAML 模板部署
  2. CRD 定义 Prometheus、Alertmanager、ServiceMonitor、PodMonitor 等资源类型
  3. Operator 监听 CRD 并管理实际资源,保证组件版本兼容
  4. 内置组件版本对应 kube-prometheus-stack v33.x
  5. Grafana 需单独安装,可通过 Helm 设置名称和 NodePort,并连接 Prometheus 数据源实现可视化
0
  1. 支付宝打赏

    qrcode alipay
  2. 微信打赏

    qrcode weixin

评论区