使用Grafana和nginx入口控制器的Minikube设置无法兑现root_url

问题描述 投票:0回答:1

我正在尝试使用minikube(On Mac,VirtualBox)和自定义webapp和grafana设置开发环境。我似乎无法使nginx入口控制器+ grafana root_url选项一起工作。由于Grafana,nginx和minikube是如此受欢迎的工具,我必须忽略一些东西,我完全没有想法/运气。如果有人可以帮助我,我真的很感激。我花了很多时间在这上面。

主机端口32080在Virtualbox中n / w映射到minikube端口32080 my-ingress-demo.com在我的Mac上的/ etc / hosts中添加为127.0.0.1。当我去http://my-ingress-demo.com:32080/grafana/时,我一直在说错误(浏览器类型:Chrome)

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


相应的服务定义如下

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

我的入口定义如下

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。如果我尝试在入口配置中包含常见的重写规则,我会得到太多重定向错误


尝试使用docker-compose更简单的设置,但仍然遇到同样的问题。我必须在这里做一些非常愚蠢的事情

version: '3.3'
services:
  grafana:
    image: "grafana/grafana"
    container_name: 'grafanaxxx'
    ports:
      - '3000:3000'
    environment:
      - GF_SERVER_ROOT_URL=%(protocol)s://%(domain)s/grafana/
kubernetes grafana minikube kubernetes-ingress nginx-ingress
1个回答
0
投票

试试这个(见斜杠)

GF_SERVER_ROOT_URL=%(protocol)s://%(domain)s/grafana/

而这条路在Nginx:

paths:
  - path: "/grafana"
© www.soinside.com 2019 - 2024. All rights reserved.