尝试使用Ingress重写Grafana的url

时间:2019-07-23 18:20:51

标签: kubernetes grafana kubernetes-ingress nginx-ingress

在我的kubernetes集群中,我想进行监视,所以我安装了grafana。

我想以http://example.com/monitoring的身份访问grafana信息中心,因此尝试将其包含在我的入口配置中

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: example-ingress
  annotations:
    nginx.ingress.kubernetes.io/rewrite-target: /$1
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路径的后面(如果可能)?

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

更新:我已按照以下建议修改了grafana图表的文件values.yaml

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

现在我得到了:

enter image description here

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

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

1 个答案:

答案 0 :(得分:2)

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

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

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

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