我正在使用舵图在本地kube集群上设置Grafana服务器。我试图使其在子路径上工作,以便稍后在带有tls的生产环境中实现它,但是我无法在http://localhost:3000/grafana上访问Grafana。
我已经尝试了Internet上所有关于向入口添加子路径的所有建议,但似乎没有任何效果。
当我从Values.yaml中删除root_url:http://localhost:3000/时,http://localhost:3000/grafana上会显示Grafana登录屏幕
但是当我将root_url:http://localhost:3000/grafana重新添加到values.yaml文件中时,我看到下面的错误(在本文结尾处)。
root_url: http://localhost:3000/grafana and ingress as:
ingress:
enabled: true
annotations:
nginx.ingress.kubernetes.io/rewrite-target: /
labels: {}
path: /grafana
hosts:
- localhost
tls: []
# - secretName: chart-example-tls
# hosts:
# - chart-example.local
resources: {}
我希望http://localhost:3000/grafana网址向我显示登录屏幕,而不是出现以下错误:
If you're seeing this Grafana has failed to load its application files
1. This could be caused by your reverse proxy settings.
2. If you host grafana under subpath make sure your grafana.ini root_url setting includes subpath
3. If you have a local dev build make sure you build frontend using: yarn start, yarn start:hot, or yarn build
4. Sometimes restarting grafana-server can help
您能帮我修复values.yaml上的入口和root_url,以使Grafana URL在/ grafana上工作吗?
答案 0 :(得分:0)
在检查Configuring grafana behind Proxy的文档时,应在root_url
部分下的grafana.ini
文件中配置[server]
。您可以修改values.yaml
来实现此目的。
grafana.ini:
...
server:
root_url: http://localhost:3000/grafana/
另外,您对值的输入应如下所示。
ingress:
enabled: true
annotations:
kubernetes.io/ingress.class: nginx
nginx.ingress.kubernetes.io/rewrite-target: /
labels: {}
path: /grafana/
hosts:
- ""
希望有帮助。
答案 1 :(得分:0)
您需要告诉 grafana 应用程序,它不是在根 url /
(默认)下运行,而是在某个子路径下运行。最简单的方法是通过 GF_
前缀的环境变量:
grafana:
env:
GF_SERVER_ROOT_URL: https://myhostname.example.com/grafana
GF_SERVER_SERVE_FROM_SUB_PATH: 'true'
ingress:
enabled: true
hosts:
- myhostname.example.com
path: /grafana($|(/.*))
pathType: ImplementationSpecific
以上示例适用于 kubernetes 的 nginx-ingress-controller。根据您使用的入口控制器,您可能需要
path: /grafana
pathType: Prefix
相反。