Grafana 与 kubeflow

Grafana with kubeflow

我正在尝试将 Grafana 与我的 kubeflow 集成以监控我的模型。

我不知道从哪里开始,因为我无法在文档中找到任何内容。

有人可以帮忙吗?

要 运行 带有 kubeflow 的 Grafana,请按照以下步骤操作:

  1. 创建命名空间

kubectl create namespace knative-monitoring

  1. 设置监控组件

kubectl apply --filename https://github.com/knative/serving/releases/download/v0.13.0/monitoring-metrics-prometheus.yaml

  1. 通过端口转发启动 grafana 开发板

kubectl port-forward --namespace knative-monitoring $(kubectl get pod --namespace knative-monitoring --selector="app=grafana" --output jsonpath='{.items[0].metadata.name}') 8080:3000

访问 http://localhost:8080 上的 grafana 仪表板。

这取决于您的配置。我在 EC2 VM 上有一个 MiniKF 实例 运行,需要指定地址为 0.0.0.0 才能使端口转发方法起作用。

kubectl port-forward --namespace knative-monitoring \
  $(kubectl get pod --namespace knative-monitoring \
    --selector="app=grafana" --output jsonpath='{.items[0].metadata.name}') \
  --address 0.0.0.0 8080:3000

那么您应该能够在 http://{your-kf-ip}:8080

访问 grafana 仪表板

您也可以使用此虚拟服务通过 istio 公开它:

apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
  name: grafana-vs
  namespace: kubeflow
spec:
  gateways:
  - kubeflow-gateway
  hosts:
  - '*'
  http:
  - match:
    - method:
        regex: GET|POST
      uri:
        prefix: /istio/grafana/
    rewrite:
      uri: /
    route:
    - destination:
        host: grafana.istio-system.svc.cluster.local
        port:
          number: 3000

因此,如果您通常通过 https://kubeflow.example.com, having this exposed through kubeflow-gateway will allow you to access it via https://kubeflow.example.com/istio/grafana/

访问您的 kubeflow 仪表板

如果您使用的不是 Istio 的 grafana,而是 Knative 的,您可以相应地更改目的地。

您可能还需要通过 grafana 部署中的环境变量更改 grafana 的根 url:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: grafana
  namespace: istio-system
spec:
  template:
      containers:
      - env:
        - name: GF_SERVER_ROOT_URL
          value: https://kubeflow.example.com/istio/grafana