【问题标题】:knative: routing based on custom headers?knative:基于自定义标头的路由?
【发布时间】:2020-12-16 07:43:05
【问题描述】:

我们可以创建一个有两个修订版的 knative 服务,然后我们可以像这样配置流量。

 traffic:
  - latestRevision: false
    percent: 100
    revisionName: header-v1
  - latestRevision: false
    percent: 0
    revisionName: header-v2
    tag: v2

我们可以使用 header "Knative-Serving-Tag: v2" 来路由到 header-v2 版本。 但是,我们希望使用自定义标头路由到特定修订,例如“用户: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: 100

hosts不能和前一个相同,否则不会生效。我们不想更改主机,我们只想通过自定义标头进行路由。这样做的更好方法是什么?提前致谢。

【问题讨论】:

    标签: knative knative-serving


    【解决方案1】:

    我认为 Knative Serving 不会以您想要的方式支持这一点。

    有一个未解决的问题:https://github.com/knative/serving/issues/4736。存在一些担忧,尚未做出决定。

    您使用VirtualService 所做的配置是正确的,但VirtualService 将得到协调,您的更改将消失。所以,这不是一个选择。

    【讨论】:

    • 谢谢,这正是我想问的。顺便说一句,我还有一个问题。 knative 支持 ARM 架构吗?
    • 如果 Kubernetes 支持 ARM 架构,Knative 也支持。不过我个人对此一无所知。
    猜你喜欢
    • 1970-01-01
    • 2016-01-09
    • 1970-01-01
    • 1970-01-01
    • 2019-01-18
    • 2021-08-08
    • 2016-06-24
    • 2017-08-20
    相关资源
    最近更新 更多