Kubernetes Istio入口网关-查看gRPC连接和负载平衡

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)在这个设置上运行负载测试,该测试在应用程序集群外部运行

我们在集群(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,但它没有给我们适当的可视性

问题:

  • 我们如何了解从入口网关到pod/代理的物理连接
  • “每请求gRPC”负载平衡是如何实现的
  • 可能存在哪些选项来优化此设置中涉及的各种组件

  • 谢谢。

    1.我们如何查看从入口网关到pod/代理的物理连接

    如果Kiali没有显示出你到底需要什么,也许你可以试试

    Jaeger是一个开源的端到端分布式跟踪系统,允许用户在复杂的分布式系统中监视和排除事务

    有关于的istio文档


    另外,这里可能会有帮助,请看一看


    2.“每请求gRPC”负载平衡是如何实现的

    如上所述

    默认情况下,特使代理使用循环模式在每个服务的负载平衡池中分配流量,其中请求依次发送到每个池成员,一旦每个服务实例收到请求,就返回到池的顶部

    如果您不想更改默认的循环模式,您可以使用它。目标规则允许您在调用整个目标服务或特定服务子集(如首选负载平衡模型、TLS安全模式或断路器设置)时自定义特使的流量策略

    这是毫无疑问的


    更多关于特使中的负载平衡


    3.可能存在哪些选项来优化此设置中涉及的各种组件

    我不确定istio组件中是否有需要优化的内容,可能是一些自定义配置


    额外资源:


    1.我们如何查看从入口网关到pod/代理的物理连接

    如果Kiali没有显示出你到底需要什么,也许你可以试试

    Jaeger是一个开源的端到端分布式跟踪系统,允许用户在复杂的分布式系统中监视和排除事务

    有关于的istio文档


    另外,这里可能会有帮助,请看一看


    2.“每请求gRPC”负载平衡是如何实现的

    如上所述

    默认情况下,特使代理使用循环模式在每个服务的负载平衡池中分配流量,其中请求依次发送到每个池成员,一旦每个服务实例收到请求,就返回到池的顶部

    如果您不想更改默认的循环模式,您可以使用它。目标规则允许您在调用整个目标服务或特定服务子集(如首选负载平衡模型、TLS安全模式或断路器设置)时自定义特使的流量策略

    这是毫无疑问的


    更多关于特使中的负载平衡


    3.可能存在哪些选项来优化此设置中涉及的各种组件

    我不确定istio组件中是否有需要优化的内容,可能是一些自定义配置


    额外资源: