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

如何在KubeRay Head Service注解中配置暴露Prometheus指标?

如何通过Kubernetes Service注解实现Prometheus监控KubeRay部署的Ray集群?

问题背景

我使用KubeRay在Kubernetes上部署了Ray集群,希望通过Prometheus监控集群指标。根据Ray官方文档,Head节点会生成服务发现文件/tmp/ray/prom_metrics_service_discovery.json,可以通过以下Prometheus配置实现自动抓取:

# Prometheus config file

# my global config
global:
  scrape_interval:     2s
  evaluation_interval: 2s

# Scrape from Ray.
scrape_configs:
- job_name: 'ray'
  file_sd_configs:
  - files:
    - '/tmp/ray/prom_metrics_service_discovery.json'

但基于Kubernetes使用经验,我更倾向于通过Service注解的方式配置Prometheus自动抓取Ray指标,示例格式如下:

apiVersion: v1
kind: Service
metadata:
  name: xxx
  annotations:
    prometheus.io/scrape: "true"
    prometheus.io/path: /metrics
    prometheus.io/port: "8081"

请问有没有办法实现这种方式?


已解决方案(更新于2022-11-10)

通过手动创建Kubernetes Service即可实现该需求,配置模板如下:

apiVersion: v1
kind: Service
metadata:
  # labels:
  #   app.kubernetes.io/name: kuberay-metrics
  #   ray.io/cluster: {{ include "ray-cluster.fullname" . }}
  name: {{ include "ray-cluster.fullname" . }}-metrics-svc
  annotations:
    {{- if .Values.prometheus.enable }}
    prometheus.io/scrape: "{{.Values.prometheus.enable }}"
    prometheus.io/path: /metrics
    prometheus.io/port: "8080"
    {{- end }}
spec:
  ports:
  - name: metrics
    port: 8080
    protocol: TCP
    targetPort: 8080
  selector:
    app.kubernetes.io/name: kuberay
    ray.io/cluster: {{ include "ray-cluster.fullname" . }}
  type: ClusterIP

配置说明

  • 该Service通过标签选择器app.kubernetes.io/name: kuberay和ray.io/cluster: <集群全名>匹配Ray集群的Head节点及Worker节点
  • 通过prometheus.io/*注解告知Prometheus开启指标抓取,指定抓取路径为/metrics,端口为8080(Ray默认的metrics端口)
  • 配置支持通过Helm的Values.prometheus.enable参数控制是否开启监控抓取

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 19:15:38