You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将Kubernetes集群监控指标导出至远程SaaS Prometheus?

Kubernetes集群指标导出至远程Prometheus SaaS的最佳方案

一、最佳实践思路

不建议直接将node-exporter暴露到公网让远程Prometheus拉取——这种方式会扩大攻击面,节点敏感指标有泄露风险。更可靠安全的方案是采用**「集群内采集+远程推送」**模式:

  • 用node-exporter采集节点层面的资源指标(CPU、内存、磁盘等)
  • 用kube-state-metrics采集Kubernetes对象的状态指标(Pod、Deployment、Service等)
  • 通过Prometheus Remote Write机制,将所有采集到的指标批量推送到你的SaaS Prometheus服务器

二、node-exporter的Kubernetes部署清单

直接用DaemonSet部署,确保每个节点都运行一个实例:

apiVersion: apps/v1
kind: DaemonSet
metadata:
  name: node-exporter
  namespace: monitoring
  labels:
    app: node-exporter
spec:
  selector:
    matchLabels:
      app: node-exporter
  template:
    metadata:
      labels:
        app: node-exporter
      annotations:
        prometheus.io/scrape: "true"
        prometheus.io/port: "9100"
    spec:
      containers:
      - name: node-exporter
        image: quay.io/prometheus/node-exporter:latest
        args:
        - --path.rootfs=/host
        ports:
        - containerPort: 9100
          name: metrics
        volumeMounts:
        - name: rootfs
          mountPath: /host
          readOnly: true
      volumes:
      - name: rootfs
        hostPath:
          path: /
      tolerations:
      - key: node-role.kubernetes.io/master
        effect: NoSchedule

配套的Service(ClusterIP即可,无需公网暴露):

apiVersion: v1
kind: Service
metadata:
  name: node-exporter
  namespace: monitoring
  labels:
    app: node-exporter
spec:
  selector:
    app: node-exporter
  ports:
  - name: metrics
    port: 9100
    targetPort: 9100

三、配置Remote Write推送指标到SaaS Prometheus

  1. 先在集群内部署一个轻量的Prometheus实例(或者用你已有的监控组件),添加remote_write配置:
remote_write:
- url: "https://<你的SaaS Prometheus端点>/api/v1/write"
  bearer_token: "<从SaaS平台获取的认证令牌>"
  queue_config:
    max_samples_per_send: 1000
    max_shards: 200
    capacity: 2500
  1. 确保Prometheus能采集到node-exporter和kube-state-metrics的指标(通过ServiceMonitor或者直接配置scrape_configs),之后就会自动将指标推送到远程SaaS服务器。

补充说明

  • 如果一定要用拉取模式(不推荐),可以给node-exporter的Service配置LoadBalancer,但必须添加认证(比如Basic Auth)和IP白名单,只允许你的SaaS Prometheus服务器IP访问,降低风险。
  • kube-state-metrics的部署可以直接用官方Helm Chart或者DaemonSet,用来补充K8s核心对象的监控指标,和node-exporter配合能覆盖集群的完整监控需求。

内容的提问来源于stack exchange,提问作者BastienSander

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.20 15:30:08