我的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。
答案 0 :(得分:1)
Kubernetes入口并没有重写您的请求URL,入口控制器正在执行此操作(无论您碰巧使用了什么)。例如,如果您的入口控制器是Nginx,则可以在入口上使用annotations来控制此行为。