首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Grafana和nginx入口控制器的Minikube设置没有遵守root_url

使用Grafana和nginx入口控制器的Minikube设置没有遵守root_url
EN

Stack Overflow用户
提问于 2019-04-29 13:24:31
回答 1查看 972关注 0票数 0

我正在尝试使用minikube (在Mac,VirtualBox上)设置一个开发环境,并使用自定义的webapp和grafana。我只是不能让nginx入口控制器+ grafana root_url选项一起工作。因为Grafana,nginx和minikube是如此流行的工具,我一定是忽略了一些东西,我完全失去了想法/运气。如果有人能帮我的忙我会非常感激的。我花了很多时间在这件事上。

主机端口32080在Virtualbox中被映射到minikube端口32080,My-inres-DEMO.com作为127.0.0.1in/etc/ host添加到我的Mac上。当我进入http://my-ingress-demo.com:32080/grafana/时,我总是碰到一个错误(浏览器类型: Chrome),上面写着

代码语言:javascript
复制
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`

首先,我使用helm安装了nginx入口控制器。

helm install stable/nginx-ingress --name r1 --set controller.service.nodePorts.http=32080 --set controller.service.type=NodePort --set controller.service.nodePort=8080 --namespace default

我的grafana部署是

apiVersion: apps/v1 kind: Deployment metadata: name: grafana-demo spec: replicas: 1 selector: matchLabels: podLabel: GrafanaDemoPod template: metadata: labels: podLabel: GrafanaDemoPod spec: containers: - name: grafana-demo image: "grafana/grafana:6.1.4" imagePullPolicy: Always env: - name: GF_SERVER_ROOT_URL value: "%(protocol)s://%(domain)s:/grafana" - name: GF_SERVER_DOMAIN value: "my-ingress-demo.com" ports: - name: grafana-cntrprt containerPort: 3000 protocol: TCP livenessProbe: failureThreshold: 10 httpGet: path: /api/health port: grafana-cntrprt initialDelaySeconds: 60 timeoutSeconds: 30 readinessProbe: httpGet: path: /api/health port: grafana-cntrprt

相应的服务定义如下

代码语言:javascript
复制
apiVersion: v1
kind: Service
metadata:
  name: grafana-demo-svc
  labels:
    svc_category: front-end
spec:
  selector:
    podLabel: GrafanaDemoPod
  ports:
    - name: grafana-svcport
      port: 3000
      targetPort: 3000

我的入口定义如下

代码语言:javascript
复制
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  annotations:
    kubernetes.io/ingress.class: "nginx"
  name: grafana-app-ingress
spec:
  rules:
    - host: my-ingress-demo.com
      http:
        paths:
          - path: "/grafana/"
            backend:
              serviceName: grafana-demo-svc
              servicePort: grafana-svcport

我本来希望看到登录屏幕,但我一直得到404。如果我试图在ingress配置中包含常见的重写规则,则会得到太多的重定向错误。

尝试使用更简单的设置,使用对接-撰写,但仍然击中相同的问题。我一定是在做些很愚蠢的事

代码语言:javascript
复制
version: '3.3'
services:
  grafana:
    image: "grafana/grafana"
    container_name: 'grafanaxxx'
    ports:
      - '3000:3000'
    environment:
      - GF_SERVER_ROOT_URL=%(protocol)s://%(domain)s/grafana/
EN

回答 1

Stack Overflow用户

发布于 2019-04-29 13:41:07

试着使用这个(参见后面的斜杠)

代码语言:javascript
复制
GF_SERVER_ROOT_URL=%(protocol)s://%(domain)s/grafana/

在Nginx的这条路:

代码语言:javascript
复制
paths:
  - path: "/grafana"
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55904364

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档