如何解决Kubernetes - Ingress - 被更一般的规则捕获
我正在尝试为在我的 microk8s 集群中运行的服务 (Kibana) 设置入口规则,但我遇到了一些问题。
设置的第一个规则是
Name: web-ingress
Namespace: default
Address: 127.0.0.1
Default backend: default-http-backend:80 (<error: endpoints "default-http-backend" not found>)
TLS:
k8s-ingress-tls terminates web10
Rules:
Host Path Backends
---- ---- --------
*
/ web-service:8080 (10.1.72.26:8080,10.1.72.27:8080)
Annotations: Nginx.ingress.kubernetes.io/rewrite-target: /
Nginx.ingress.kubernetes.io/ssl-redirect: false
Events: <none>
我正在尝试将 Kibana 服务设置为在路径 /kibana 上提供服务
Name: kibana
Namespace: default
Address: 127.0.0.1
Default backend: default-http-backend:80 (<error: endpoints "default-http-backend" not found>)
TLS:
k8s-ingress-tls terminates web10
Rules:
Host Path Backends
---- ---- --------
*
/kibana(/|$)(.*) kibana:5601 (10.1.72.39:5601)
Annotations: Nginx.ingress.kubernetes.io/ssl-redirect: false
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
normal CREATE 17m nginx-ingress-controller Ingress default/kibana
normal UPDATE 17m nginx-ingress-controller Ingress default/kibana
我的问题是 Kibana 做的第一件事是将 302 重定向返回到 host/login?next=%2F,这由第一个 Ingress 规则解决,因为现在我丢失了 /kibana 路径。
我尝试添加 Nginx.ingress.kubernetes.io/rewrite-target: /kibana/$2
但重定向然后看起来像 host/login?next=%2Fkibana%2F
这根本不是我想要的。
如果我删除第一条规则,一旦 Kibana 重定向到主机/登录,我就会得到 404?next=%2F
解决方法
在 kibana
入口添加以下注解,以便 nginx-ingress 使用正则表达式解释 /kibana(/|$)(.*)
路径:
nginx.ingress.kubernetes.io/use-regex: "true"
其他细节:
要让 kibana 知道它在 /kibana
路径上运行,请将以下环境变量添加到 kibana pod/deployment:
- name: SERVER_BASEPATH
value: /kibana
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。