在 Istio VS 中根据 URI 前缀将请求路由到服务
Routing requests to services based on URI prefix in Istio VS
这就是我想要实现的:
根据 URI 前缀
将流量路由到服务
我面临的问题:
无法将前缀与上下文路径分开
解释:
我想根据前缀将流量路由到服务。
比如说,/dev/service/context/path/ 和 /test/service/context/path/。
但是如果不更改应用程序本身的上下文路径,我将无法这样做。
有没有办法将 URI 的前缀部分与应用程序的上下文路径分开?
这是我的 VS 的样子:
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
name: servicea
namespace: dev
spec:
hosts:
- "*"
gateways:
- dev-gateway
http:
- match:
- uri:
prefix: /dev
route:
- destination:
port:
number: 8080
host: servicea
谢谢
不确定我是否正确理解你的问题。我想你可以像这样添加一个重写规则:
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
name: servicea
namespace: dev
spec:
hosts:
- "*"
gateways:
- dev-gateway
http:
- match:
- uri:
prefix: /dev
rewrite:
uri: /
route:
- destination:
port:
number: 8080
host: servicea
由此,您 /dev/service/context/path/
的流量变为 /service/context/path/
。
这就是我想要实现的: 根据 URI 前缀
将流量路由到服务我面临的问题: 无法将前缀与上下文路径分开
解释:
我想根据前缀将流量路由到服务。 比如说,/dev/service/context/path/ 和 /test/service/context/path/。 但是如果不更改应用程序本身的上下文路径,我将无法这样做。
有没有办法将 URI 的前缀部分与应用程序的上下文路径分开?
这是我的 VS 的样子:
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
name: servicea
namespace: dev
spec:
hosts:
- "*"
gateways:
- dev-gateway
http:
- match:
- uri:
prefix: /dev
route:
- destination:
port:
number: 8080
host: servicea
谢谢
不确定我是否正确理解你的问题。我想你可以像这样添加一个重写规则:
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
name: servicea
namespace: dev
spec:
hosts:
- "*"
gateways:
- dev-gateway
http:
- match:
- uri:
prefix: /dev
rewrite:
uri: /
route:
- destination:
port:
number: 8080
host: servicea
由此,您 /dev/service/context/path/
的流量变为 /service/context/path/
。