尝试使用 Ingress 为 Grafana 重写 url

Trying to rewrite url for Grafana with Ingress

在我的kubernetes集群中我想做监控所以我安装了grafana。

我想以 http://example.com/monitoring 的身份访问 grafana 仪表板,所以我尝试将其包含在我的入口配置中

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: example-ingress
  annotations:
    nginx.ingress.kubernetes.io/rewrite-target: /
spec:
  rules:
  - host: example.com
  http:
    paths:
    - path: /monitoring/(.*)
    backend:
     serviceName: grafana
     servicePort: 80

想法是在那里也添加其他路径,例如 / 用于网站。

我注意到 Grafana 将 http://example.com/monitoring 重定向到 http://example.com/login。当然这应该是http://example.com/monitoring/login。解决此问题的首选方法是什么。可以用 ingress 完成还是我应该以某种方式告诉 Grafana 它在 /monitoring 路径后面(如果可能)?

我已经使用 Helm this 安装了 grafana。

更新:我已经按照 grafana 图表文件 values.yaml 下面的建议进行了如下修改

grafana.ini:
  server:
    domain: example.com
    root_url: http://example.com/monitoring/

现在我得到:

还有我用来安装grafana的heml命令:

$> helm install stable/grafana -f values.yaml --set persistence.enabled=true --set persistence.accessModes={ReadWriteOnce} --set persistence.size=8Gi -n grafana

这是 HTTP 反向代理后面的服务的常见问题。幸运的是,Grafana 提供了一种方法让它知道它在 运行 后面的上下文路径。

grafana.ini 中(很可能通过 ConfigMap 为其 Kubernetes 部署提供),您需要指定如下变量:

[server]
domain = example.com
root_url = http://example.com/monitoring/

在此处查看完整文档:https://grafana.com/docs/installation/behind_proxy/