通过 helm chart 部署 Grafana UI 时不加载
Posted
技术标签:
【中文标题】通过 helm chart 部署 Grafana UI 时不加载【英文标题】:Grafana UI does not load when deployed through helm chart 【发布时间】:2021-05-07 09:19:48 【问题描述】:我正在尝试部署 kube-prometheus-stack。
我已将其作为依赖项添加到 Chart.yaml 中,如下所示。
...
dependencies:
- name: kube-prometheus-stack
version: 13.4.1
repository: https://prometheus-community.github.io/helm-charts
...
我还配置了一个入口规则,将 /grafana/?(.*) 路径路由到端口 80 处的服务 Solutions-helm-grafana。
- path: /grafana/?(.*)
pathType: Prefix
backend:
service:
name: helm-grafana
port:
number: 80
但是,当我尝试在浏览器中打开 /grafana/ 时,它会在重定向到 /login 后返回 404。我需要添加哪些模板才能成功部署?有没有可以参考的例子?
【问题讨论】:
【参考方案1】:嗨@Moses,您可以尝试从路径中删除 ?(.*) 吗?
当入口没有向入口控制器注册时出现404。
可能是因为发布没有部署成功。
尝试以下步骤来调试问题:-
检查是否已使用kubectl get pods
部署了 pod。
尝试调试入口对象。 kubectl describe ing <ing_object_name>
。
检查端点是否已使用kubectl get ep
创建。
接下来,使用kubectl get service
获取服务端点。
使用 busybox pod 卷曲并检查 Grafana 是否通过上述服务提供服务。
更新:- 添加以下配置以在子路径上服务 Grafana
env:
GF_SERVER_DOMAIN: <domain>
GF_SERVER_ROOT_URL: https://<domain>/grafana/
GF_SERVER_SERVE_FROM_SUB_PATH: true
并在入口中使用此路径:
path: /grafana/
来源: Run Grafana behind reverse-proxy Grafana confiugration root_url
【讨论】:
rohatgisanat 谢谢。我确实尝试了你提到的步骤。所有 pod、入口、端点和服务都在正确部署。我的感觉是,我需要以某种方式弄清楚如何设置根路径或子路径,以便从 grafana 正确提供网页, 嗨@Moses,您是否尝试过在busybox 中使用service/grafana 卷曲?还可以尝试在最后删除正则表达式expr。如果那行得通,那么您的入口就是问题所在。您可以进一步查看入口控制器是否正在读取您的入口对象。 (同时查看注释) @Moses 添加了解决方案。 rohatgisanat 我试过了,但是没用。也许我还需要改变一些东西。不过感谢您的解决方案。它帮助我了解了如何设置环境变量。 ``` grafana: env: GF_SERVER_DOMAIN:kubectl get services
中。在列出端点时,会显示端口 3000。所以在 ingress.yaml 中,我们路由到服务端口 80。但在环境变量 GF_SERVER_ROOT_URL 中,我们使用端口 3000。以上是关于通过 helm chart 部署 Grafana UI 时不加载的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 helm chart 将 smtp 设置添加到 prometheus-operator?