我正在尝试将 Grafana 与我的 kubeflow 集成以监控我的模型。
我不知道从哪里开始,因为我无法在文档中找到任何内容。
有人可以帮忙吗?
要使用 kubeflow 运行 Grafana,请执行以下步骤:
kubectl 创建命名空间 knative-monitoring
kubectl apply --filename https://github.com/knative/serving/releases/download/v0.13.0/monitoring-metrics-prometheus.yaml
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 虚拟机上运行的 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
然后您应该能够访问 grafana 仪表板http://{your-kf-ip}:8080
你也可以通过 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访问您的 kubeflow 仪表板,则通过公开此信息kubeflow-gateway
将允许您通过https://kubeflow.example.com/istio/grafana/访问它
如果您使用的不是 Istio 的 grafana 而是 Knative 的,您可以相应地更改目的地。
您可能还需要通过 grafana 部署中的 env 变量更改 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