我想要反向代理grafana。我没有使用域来访问入口,而是使用节点的IP。我正在使用重写目标来完成这项工作,但是它不起作用。它始终将应用程序重定向到 /login,不带前缀 /grafana(404 错误)。预期网址为 /grafana/login。
apiVersion: networking.k8s.io/v1
kind: IngressClass
metadata:
labels:
app.kubernetes.io/component: controller
name: nginx-example-grafana
namespace: grafana
annotations:
ingressclass.kubernetes.io/is-default-class: "true"
spec:
controller: k8s.io/ingress-nginx
---
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: minimal-ingress-grafana
namespace: grafana
annotations:
nginx.ingress.kubernetes.io/use-regex: "true"
nginx.ingress.kubernetes.io/rewrite-target: /$2
spec:
ingressClassName: nginx-example-grafana
rules:
- http:
paths:
- path: /grafana(/|$)(.*)
pathType: ImplementationSpecific
backend:
service:
name: grafana
port:
number: 3000
我不确定我是否理解。这是带有
nginx.ingress.kubernetes.io/rewrite-target: /$2
注释的预期行为。我将重定向到路径正则表达式的第二个捕获组,因此将 /grafana/login
更改为 /login
,因为 /login
与正则表达式的第二个捕获组匹配。
我会简单地删除重定向,并将路径保留为
/grafana
。