在我的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/
现在我得到了:
还有我用来安装grafana的heml命令:
$> helm install stable/grafana -f values.yaml --set persistence.enabled=true --set persistence.accessModes={ReadWriteOnce} --set persistence.size=8Gi -n grafana
答案 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/