在测试Istio的过程中,我需要以与Kubernetes自己的入口控制器相同的方式重写Istio ingress控制器上的所有命令请求,我使用的是rewrite-target
annotation
# Existing Kubernetes ingress configuration
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: api
annotations:
ingress.kubernetes.io/rewrite-target: /
spec:
rules:
- host: some.host.com
http:
paths:
- path: /svc
backend:
serviceName: svc
servicePort: 80
这会产生所有请求,例如http://some.host.com/svc/endpoint
使用/endpoint
代替/svc/endpoint
如何使用Istio的入口控制器有效地做同样的事情?
Route rules对象可以处理重写,但只能按目标方式使用,即我必须为每个服务创建一个路由规则。
答案 0 :(得分:2)
你是对的。每个服务需要一个路由规则来设置重写目标。有关示例,请参阅https://istio.io/docs/reference/config/traffic-rules/routing-rules.html#httprewrite。