Kubernetes Istio入口网关-查看gRPC连接和负载平衡
我们在集群(v1.17.6)中部署了一个gRPC应用程序,并使用Istio(v1.6.2)设置。集群将istio入口网关设置为边缘LB,带有SSL终端。istio入口通道在直通模式下由AWS ELB(经典LB)前方。该设置功能齐全,总体而言,交通流符合预期。因此,设置如下所示: ELB=>istio ingressgateway=>virtual service=>app service=>[(特使)pods] 我们使用GHZ(GHZ.sh)在这个设置上运行负载测试,该测试在应用程序集群外部运行。从我们运行的测试中,我们观察到,无论GHZ测试的配置如何,每个应用程序容器似乎都有大约300个RPS路由到它。作为参考,我们尝试了各种测试的--concurrency和--connection设置组合。这~300 rpm低于我们对应用程序的预期,因此需要更多的pod来提供所需的吞吐量 我们非常有兴趣了解本例中物理连接(gRPC/HTTP2)设置的细节,从ELB到应用程序/特使,以及正在进行的负载平衡的细节。特别令人感兴趣的是当同一个客户端(例如GHZ)打开多个连接(通过--connection选项指定)时的情况。我们已经看过了Kiali,但它没有给我们适当的可视性 问题:Kubernetes Istio入口网关-查看gRPC连接和负载平衡,kubernetes,amazon-elb,istio,Kubernetes,Amazon Elb,Istio,我们在集群(v1.17.6)中部署了一个gRPC应用程序,并使用Istio(v1.6.2)设置。集群将istio入口网关设置为边缘LB,带有SSL终端。istio入口通道在直通模式下由AWS ELB(经典LB)前方。该设置功能齐全,总体而言,交通流符合预期。因此,设置如下所示: ELB=>istio ingressgateway=>virtual service=>app service=>[(特使)pods] 我们使用GHZ(GHZ.sh)在这个设置上运行负载测试,该测试在应用程序集群外部运行
谢谢。1.我们如何查看从入口网关到pod/代理的物理连接 如果Kiali没有显示出你到底需要什么,也许你可以试试 Jaeger是一个开源的端到端分布式跟踪系统,允许用户在复杂的分布式系统中监视和排除事务 有关于的istio文档
另外,这里可能会有帮助,请看一看
2.“每请求gRPC”负载平衡是如何实现的 如上所述 默认情况下,特使代理使用循环模式在每个服务的负载平衡池中分配流量,其中请求依次发送到每个池成员,一旦每个服务实例收到请求,就返回到池的顶部 如果您不想更改默认的循环模式,您可以使用它。目标规则允许您在调用整个目标服务或特定服务子集(如首选负载平衡模型、TLS安全模式或断路器设置)时自定义特使的流量策略 这是毫无疑问的
更多关于特使中的负载平衡
3.可能存在哪些选项来优化此设置中涉及的各种组件 我不确定istio组件中是否有需要优化的内容,可能是一些自定义配置
额外资源:
另外,这里可能会有帮助,请看一看
2.“每请求gRPC”负载平衡是如何实现的 如上所述 默认情况下,特使代理使用循环模式在每个服务的负载平衡池中分配流量,其中请求依次发送到每个池成员,一旦每个服务实例收到请求,就返回到池的顶部 如果您不想更改默认的循环模式,您可以使用它。目标规则允许您在调用整个目标服务或特定服务子集(如首选负载平衡模型、TLS安全模式或断路器设置)时自定义特使的流量策略 这是毫无疑问的
更多关于特使中的负载平衡
3.可能存在哪些选项来优化此设置中涉及的各种组件 我不确定istio组件中是否有需要优化的内容,可能是一些自定义配置
额外资源: