如何在Istio VirtualService中使用变量?

fonhorst

我目前正在研究一种情况,当我们需要动态创建服务并通过主网关的URI子路径提供对它们的访问。

我打算将虚拟服务用于其流量路由。用于特定服务的虚拟服务应如下所示:

apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
  name: subpaths-routes
spec:
  hosts:
  - mainservice.prod.svc.cluster.local
  http:
  - name: "subpath-redirection"
    match:
    - uri:
        prefix: "/bservices/svc-2345-6789"
    route:
    - destination:
        host: svc-2345-6789.prod.svc.cluster.local

但是可能有大量的此类服务(如数千个)。全部遵循相同的路由模式。我想知道Istio是否具有使用变量/参数指定VirtualService的机制,如下所示:

apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
  name: subpaths-routes
spec:
  hosts:
  - mainservice.prod.svc.cluster.local
  http:
  - name: "subpath-redirection"
    match:
    - uri:
        prefix: "/bservices/"{{ variable }}
    route:
    - destination:
        host: {{ variable }}.prod.svc.cluster.local

在Nginx中,可以通过指定如下内容来做类似的事情:

location ~ /service/(?<variable>[0-9a-zA-Z\_\-]+)/ {
  proxy_pass http://$variable:8080;
}

Istio中有没有办法做到这一点?如果没有,那么成千上万个VS将如何影响请求处理的性能?在消耗CPU和RAM方面,保持它们昂贵吗?

先感谢您!

雅库布

如何在Istio VirtualService中使用变量?

据我所知,istio中没有这样的选项可以在前缀和主机中指定变量,如果它只是一个前缀,那么您可以尝试使用regex而不是前缀。


如果您想以某种方式使其自动化,我的意思是创建一个变量并将其放入prefix和host中,那么您可以尝试使用helm进行操作

掌舵虚拟服务的例子很少。


数千个VS将如何影响请求处理的性能?

关于github的问题,就像@lanceliuu提到的那样

当我们在单个集群中创建约1k个虚拟服务时,入口网关正在缓慢地获取新的虚拟服务。

因此,这可能是成千上万个虚拟服务的问题之一。

在消耗CPU和RAM方面,保持它们昂贵吗?

我会说这需要测试。我检查了上述github问题,他们提到istio组件没有mem / cpu压力,但是我不能说这有多昂贵。

从理论上讲,您可以创建1个大型虚拟服务,而不是数千个,但是如文档所述,您应该将大型虚拟服务拆分为多个资源。


其他资源:

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在Kubernetes中使用istio调试mTLS通信?

来自分类Dev

如何在PHP的变量中使用变量?

来自分类常见问题

如何在AWS EKS中使用istio Mesh启用自动mTLS?

来自分类Dev

如何在AWS EKS中使用istio Mesh启用自动mTLS?

来自分类Dev

如何使用istio virtualservice将请求转发到CDN等公共服务?

来自分类常见问题

如何在简单规则中使用变量?

来自分类Dev

如何在.then中使用函数变量?

来自分类Dev

如何在匿名函数中使用变量?

来自分类Dev

如何在类变量中使用@available

来自分类Dev

如何在PHP中使用jQuery变量

来自分类Dev

如何在dplyr :: filter中使用变量?

来自分类Dev

如何在curl发布中使用变量?

来自分类Dev

如何在C中使用原子变量?

来自分类Dev

如何在__asm中使用变量?

来自分类Dev

如何在XPath中使用变量?

来自分类Dev

如何在href中使用PHP变量?

来自分类Dev

如何在XPath中使用变量?

来自分类Dev

如何在括号扩展中使用变量

来自分类Dev

如何在javascript中使用tal变量?

来自分类Dev

如何在CCheckBoxColumn中使用rowdata变量

来自分类Dev

如何在Makefile中使用导出的变量?

来自分类Dev

我如何在SBT中使用变量

来自分类Dev

如何在AppleScript中使用变量?

来自分类Dev

如何在熊猫查询中使用变量?

来自分类Dev

如何在setwd()中使用变量?

来自分类Dev

如何在python中使用bash变量

来自分类Dev

如何在函数中使用外部变量?

来自分类Dev

如何在require()中使用变量?

来自分类Dev

如何在sed命令中使用变量?