我们可以创建一个有两个版本的knative服务,然后我们可以像这样配置流量。
traffic:
- latestRevision: false
percent: 100
revisionName: header-v1
- latestRevision: false
percent: 0
revisionName: header-v2
tag: v2我们可以使用报头"Knative-Serving-Tag: v2“路由到报头-v2修订版。但是,我们希望使用自定义标题路由到特定的修订版本,如"User: v2“。我们该怎么办?我们尝试了一些方法。首先,我们尝试编辑相应的虚拟服务,但新规则将被自动删除。然后,我们尝试添加一个新的虚拟服务。
apiVersion: networking.istio.io/v1beta1
kind: VirtualService
metadata:
name: header-custom-ingress
namespace: default
spec:
gateways:
- knative-serving/knative-ingress-gateway
hosts:
- header-test.default.XXXXXXXXXXXXXXX.io
http:
- match:
- headers:
User:
exact: v2
retries: {}
rewrite:
authority: v2-header.default.XXXXXXXXXXXXXXX.io
route:
- destination:
host: istio-ingressgateway.istio-system.svc.cluster.local
port:
number: 80
weight: 100Hosts不能与前一个相同,否则不会生效。我们不想更改主机,我们只想通过自定义标头进行路由。要做到这一点,什么方法更好?提前谢谢。
发布于 2020-08-27 22:31:55
我不认为Knative服务不能以你想要的方式支持这一点。
这方面有一个开放的问题:https://github.com/knative/serving/issues/4736。这里有一些担忧,还没有做出决定。
您使用VirtualService所做的配置是正确的,但是VirtualService将被协调,您所做的更改将会消失。所以,这不是一种选择。
https://stackoverflow.com/questions/63615721
复制相似问题