Kubernetes入口在某些路径上不处理重定向,如/“我的应用程序”;,但只为“工作”/&引用;
我有一个在url上运行的容器,如。该容器部署在kubernetes上,并作为“ps app ui:8000”暴露于服务中 我想创建一个可以从外部访问的入口。入口模板类似于:Kubernetes入口在某些路径上不处理重定向,如/“我的应用程序”;,但只为“工作”/&引用;,kubernetes,docker-ingress,Kubernetes,Docker Ingress,我有一个在url上运行的容器,如。该容器部署在kubernetes上,并作为“ps app ui:8000”暴露于服务中 我想创建一个可以从外部访问的入口。入口模板类似于: apiVersion: extensions/v1beta1 kind: Ingress metadata: name: ps-ingress spec: rules: - http: paths: - path: /myapp/ backend: se
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: ps-ingress
spec:
rules:
- http:
paths:
- path: /myapp/
backend:
serviceName: ps-app-ui
servicePort: 8000
问题在于它不能与此入口一起工作。我还尝试添加“ingres.kubernetes.io/rewrite-target:/”但没有成功。有人可以帮助我通过“”访问我的应用程序吗
我会非常感激的。我在想
- 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
您需要:
- 确保您的操作系统将
转换为入口控制器正在侦听的IP地址myapp
- 将主机添加到入口
- 您可以将路径留空(假设您的应用程序正在处理完整的
路径)/ps/app/ui/?pid=201
rules:
- host: myapp
http:
paths:
- backend:
serviceName: ps-app-ui
servicePort: 8000
此入口将所有流量转发到主机
myapp
到您的服务入口版本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(/|$)(.*)
请参阅变更日志。
如何在文章后面添加星号
/myapp/
:/myapp/*
这是。。。Minikube?实际上,在进入后,它是一个绝对路径和相对路径的问题。我的应用程序希望url是,但在Ingresurl成为之后,它失败了@NorbertvanNobelen@ShahzebKhan这件事有解决办法吗?正是我遇到的问题。你能告诉我你是怎么解决的吗?我真正想要的是让我的应用程序继续工作http:///myapp/ps/app/ui/?pid=201. 应用程序本身在路径/ps/app/ui/?pid=201上提供,但问题是使用入口将此myapp路径添加到应用程序路径,并使事情变得模棱两可。路径/(空)可以正常工作,但添加任何字符串都会使其停止工作OK,我看到您编辑了您的问题。。。在这种情况下:尝试不使用主机,但将/myapp
(不带尾随斜杠)设置为路径。您的应用程序也需要监听/myapp
部分,因为据我所知,该部分不会从请求中删除!我刚刚发现,您可以通过向入口添加一些元数据来影响保持路径的行为:apiVersion:extensions/v1beta1 kind:ingres元数据:annotations:ingres.kubernetes.io/rewrite-target://
请参见