为Kubernetes扇出Ingress禁用路径重写

时间:2019-10-07 22:48:32

标签: kubernetes url-rewriting kubernetes-ingress

我的Kubernetes应用程序使用Ingress根据给定的URL将请求代理到不同的服务器:我需要扇出配置。我希望转发到服务器的请求的URL 不被重写。我该怎么办?

我希望将所有/api URL转发到be服务,并将所有其他URL转发到fe服务。但我希望URL保持不变。 例如

  • /api/users的请求应作为对be的请求转发到/api/users服务。
  • /foo的请求应作为对fe的请求转发到/foo服务。

我当前的Ingress资源是这样的:

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  ...
spec:
  ...
  rules:
    - host: ...
    - http:
        paths:
          - path: /api
            backend:
              serviceName: be
              servicePort: 8080
          - path: /
            backend:
              serviceName: fe
              servicePort: 80

但这不起作用;它会为请求提供404 Not Found。

1 个答案:

答案 0 :(得分:1)

Kubernetes入口并没有重写您的请求URL,入口控制器正在执行此操作(无论您碰巧使用了什么)。例如,如果您的入口控制器是Nginx,则可以在入口上使用annotations来控制此行为。