Kubernetes入口在某些路径上不处理重定向,如/“我的应用程序”;,但只为“工作”/&引用;

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

我有一个在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
问题在于它不能与此入口一起工作。我还尝试添加“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
您需要:

  • 确保您的操作系统将
    myapp
    转换为入口控制器正在侦听的IP地址
  • 将主机添加到入口
  • 您可以将路径留空(假设您的应用程序正在处理完整的
    /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://
请参见