我检查了istio-proxy
部署吊舱和默认api-service
部署中的istio-ingressgateway
边车集装箱的日志。从Ingressgateway到我的服务的路径保持不变。我希望请求看起来像这样:
Client: 'GET mysite.com/api/some-resource/123/'
||
||
VV
Ingressgateway: 'GET mysite.com/api/some-resource/123/'
||
||
VV
VirtualService: rewrite.uri: /
||
||
VV
api-service: 'GET mysite.com/some-resource/123/'
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
name: my-route-rules
spec:
hosts:
- mysite.com
gateways:
- istio-system/mysite-gateway
http:
- match:
- uri:
prefix: /api
rewrite:
uri: /
route:
- destination:
host: api-service.default.svc.cluster.local
port:
number: 7000
- route:
- destination:
host: web-experience.default.svc.cluster.local
port:
number: 9000
答案 0 :(得分:1)
我发现重定向实际上是有效的,但是特使同伴没有像我想象的那样在其日志中反映出来。
我从the docs推断出,特使边车将记录重写的路径(请查看rewrite
字段的说明):< / p>
将在转发之前执行重写。
我检查了在api-service
部署中运行的Web服务器的访问日志,发现格式错误的请求:GET //some-resource/123/
(来自/api/some-resource/123/
)。
结果(来自/
的额外rewrite.url: /
导致404错误。 A Github comment from an istio issue提出了一个解决方案:空白。
当用户警告时,不确定是否有此行为。