Traefik 2.x IngressRoute 不适用于给定的 Web 应用程序上下文根

Traefik 2.x IngressRoute not working with given web application context root

我们正在使用 TraefikEE 2.x 入口控制器,我的基于 SpringBoot 的 Web 应用程序在端口 8080 上运行,上下文根 /myapp。我在下面定义了 IngressRout,但是在转到 http://example.com/myapphttp://example.com/myapp/. 时出现 404 错误 如果我从应用程序配置中删除 /myapp 上下文根,则相同的 IngressRoute 定义有效,以便应用程序页面加载 / 作为上下文路径。

apiVersion: traefik.containo.us/v1alpha1
kind: IngressRoute
metadata:
  name: myapp
spec:
  tls: {}

  entryPoints:
    - websecure
  routes:
    - match: PathPrefix(`/myapp`)
      kind: Rule
      services:
        - name: myapp-service
          namespace: default
          port: 8080

发现我在不同的命名空间中有多个 application/service 以上的 IngressRoutes,一个在默认命名空间中,另一个在特定于应用程序的命名空间中。从默认命名空间中删除条目并将命名空间范围添加到 YAML,以便我们在应用更改时不必使用 -n 选项。 IngressRoute 现在工作正常。

apiVersion: traefik.containo.us/v1alpha1
kind: IngressRoute
  metadata:
  name: myapp
  namespace: myapp
spec:
  tls: {}
  entryPoints:
    - websecure
  routes:
    - match: PathPrefix(`/myapp`)
      kind: Rule
      services:
        - name: myapp-service
          namespace: myapp
          port: 8080