Istio - 基于标头值的动态请求路由

时间:2020-12-22 10:09:19

标签: kubernetes istio

基于标头值的动态请求路由

对于我们的 QA 环境,我们需要为传入 (Ingress) 和传出 (Egress) 请求配置一种特殊的路由。因此,对于传出请求,规则应该使用正则表达式评估标头值,并从标头中捕获一个值,并使用该值构建应重定向请求的 URL。标头中的值是动态变化的,因此重定向 URL 不能硬编码。

例如,如果传出请求转到 services-master.anydomain.com,但有一个标头值 forwarded-for-feature,其值为 verbu -1234 请求应该被重定向services-verbu-1234.anydomain.com

对于传入的请求,情况类似。如果 origin 指向 webapp-verbu-1234.anydomain.com,但请求转到 services-master.anydomain.com 正则表达式应该从原始域中提取 verbu-1234 并将 URL 中的 ma​​ster 替换为提取的值。

我知道,可以使用正则表达式来匹配标头值,但我不确定是否可以使用从匹配中捕获的值来影响目标 URL,至少我在文档。

1 个答案:

答案 0 :(得分:1)

我认为这是不可能的

但是如果您的 QA 系统知道可用的功能,并且您需要在 Istio 中这样做,您可以尝试为每个功能创建一个 VirtualService。并且多个 VirtualServices 将被 Istio 合并...