【发布时间】:2021-02-13 04:28:03
【问题描述】:
我们有一个 gRPC 应用程序部署在具有 Istio (v 1.6.2) 设置的集群 (v 1.17.6) 中。集群将 istio-ingressgateway 设置为边缘 LB,并带有 SSL 终止。 istio-ingressgateway 前面是一个 AWS ELB(经典 LB),处于直通模式。通常,此设置功能齐全,流量按预期流动。所以设置看起来像:
ELB => istio-ingressgateway => 虚拟服务 => 应用服务 => [(envoy)pods]
我们正在使用 GHZ (ghz.sh) 在此设置上运行负载测试,在应用程序集群外部运行。从我们运行的测试中,我们观察到每个应用程序容器似乎都有大约 300 RPS 路由到它,无论 GHZ 测试的配置如何。作为参考,我们为测试尝试了 --concurrency 和 --connection 设置的各种组合。这约 300 RPS 低于我们对应用程序的预期,因此需要更多的 POD 来提供所需的吞吐量。
在这种情况下,我们非常有兴趣了解物理连接 (gRPC/HTTP2) 设置的详细信息,从 ELB 到应用程序/特使以及正在完成的负载平衡的详细信息。特别令人感兴趣的是同一个客户端(例如 GHZ)打开多个连接(通过 --connection 选项指定)的情况。我们已经查看了 Kiali,但它并没有给我们适当的可见性。
问题:
- 我们如何才能了解正在设置的从入口网关到 pod/代理的物理连接?
- “按请求 gRPC”负载平衡是如何发生的?
- 可能存在哪些选项来优化此设置中涉及的各种组件?
谢谢。
【问题讨论】:
标签: kubernetes amazon-elb istio