据我所知,Istio Ingress流量遵循以下模式:
外部负载平衡器->Istio入口网关->Istio网关->虚拟服务->目的地(通过规则(
我正在考虑为我的每个应用程序和服务创建一个单独的Istio网关。但这将使我最终拥有相当多的Istio网关。
我试着搜索过是否有很多Istio网关的问题,但我似乎找不到任何相关信息。
或者,我可以将Istio Gateways的作用域设置为";"产品级别";(一个产品拥有多个应用程序和服务(。如果我走这条路,我可以在虚拟服务层对产品的应用程序和服务进行区分。
但是,如果我能让每个应用程序/服务都有自己的网关,那么我的模板工作就会更容易。
每个服务/应用程序都有一个Istio网关会对性能产生影响吗
这不是一个真正的答案,更多的是一个题外话。。。
不确定是否有许多网关影响了性能。
据我所知,网关为您完成了三件事:
- 暴露端口
- 主机标头白名单
- 卸载TLS证书
如果您使用类似AWS ALB的东西作为外部负载均衡器,那么配置多个网关似乎是多余的,因为ALB做的事情完全相同,然后只是将流量代理到ingressgateway pod的节点端口。将ingressgateway部署设置为NodePort,并在Gateway上添加一个伪tls证书,并进行e2e加密。
*免责声明:以上声明假设您的k8s工作节点位于专用子网中。
如果在AWS中,你甚至可以通过在API网关上放置客户端证书来获得零信任,然后使用Istio AuthPolicy验证该客户端证书。
API网关(具有客户端证书(-->VPC链接-->ALB内部-->Istio Ingress(带有客户端证书AuthPolicy(-->。。
Azure前门还引入了一些很酷的可能性,因为你可以用自定义标头标记一些https流量,然后使用AuthPolicies或Destination Rules对这些标头进行操作。
/随机思想