我正在尝试使用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/
试试这个(见斜杠)
GF_SERVER_ROOT_URL=%(protocol)s://%(domain)s/grafana/
而这条路在Nginx:
paths:
- path: "/grafana"