Kubernetes 入口在诸如"/myapp"之类的路径上不起作用,而仅适用于"/"



我有一个像 http://localhost:8000/ps/app/ui/?pid=201 这样的 url 上运行的容器。该容器部署在 kubernetes 上,并以"ps-app-ui:8000"的形式向服务公开 我想创建一个可以从外部访问的入口。入口模板如下所示:

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: ps-ingress
spec:
rules:
- http:
paths:
- path: /myapp/
backend:
serviceName: ps-app-ui
servicePort: 8000

问题是它不适用于此入口。我也尝试添加"ingress.kubernetes.io/rewrite-target:/"但没有成功。谁能帮我通过"http://INGRESS-IP/myapp/ps/app/ui/?pid=201"访问我的应用程序

将不胜感激。

入口版本 0.22.0 或更高版本改变了重写目标的工作方式。 您需要正则表达式匹配路径并将其添加到重写目标。

nginx.ingress.kubernetes.io/rewrite-target: /$2
...
...
rules:
- host: rewrite.bar.com
http:
paths:
- backend:
serviceName: http-svc
servicePort: 80
path: /something(/|$)(.*)

请参阅此处的更新日志。 如何在这里发表文章

我在想

- path: /myapp/

http://myapp/myapp/匹配你的应用

所以如果我有一个定义:

- host: app.example.com
http:
paths:
- path: /myapp

这将是http://app.example.com/myapp

如果你想使用http://myapp/ps/app/ui/?pid=201你需要:

  • 确保您的操作系统myapp转换为入口控制器正在侦听的 IP 地址
  • hostmyapp添加到入口
  • 您可以将路径留空(假设您的应用程序正在处理完整的/ps/app/ui/?pid=201路径(

这导致

rules:
- host: myapp
http:
paths:
- backend:
serviceName: ps-app-ui
servicePort: 8000

此入口会将所有流量转发到主机myapp服务转发

相关内容

  • 没有找到相关文章

最新更新