在 Istio VS 中基于 URI 前缀将请求路由到服务
Posted
技术标签:
【中文标题】在 Istio VS 中基于 URI 前缀将请求路由到服务【英文标题】:Routing requests to services based on URI prefix in Istio VS 【发布时间】:2020-10-27 14:48:50 【问题描述】:这就是我想要实现的目标: 根据 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
谢谢
【问题讨论】:
【参考方案1】:不确定我是否正确理解了您的问题。我想你可以像这样添加一个重写规则:
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/
。
【讨论】:
以上是关于在 Istio VS 中基于 URI 前缀将请求路由到服务的主要内容,如果未能解决你的问题,请参考以下文章
Spring Boot、Minikube、Istio 和 Keycloak:“无效参数:redirect_uri”