重写istio ingress控制器中的所有请求目标

时间:2017-06-01 14:24:50

标签: kubernetes istio

在测试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对象可以处理重写,但只能按目标方式使用,即我必须为每个服务创建一个路由规则。

1 个答案:

答案 0 :(得分:2)

你是对的。每个服务需要一个路由规则来设置重写目标。有关示例,请参阅https://istio.io/docs/reference/config/traffic-rules/routing-rules.html#httprewrite