【问题标题】:Autoscaling service from single async client (one connection)来自单个异步客户端的自动缩放服务(一个连接)
【发布时间】:2017-08-27 06:36:57
【问题描述】:

我有一个客户端对 kubernetes 管理的 gRPC 服务进行异步调用。函数调用在计算上很昂贵,并且它们每个都需要一段时间才能完成。因此,许多调用在队列中等待响应(如本教程中所示https://grpc.io/docs/tutorials/async/helloasync-cpp.html 或更具体的https://github.com/grpc/grpc/blob/v1.4.x/examples/cpp/helloworld/greeter_async_client2.cc)。我注意到所有调用都由同一个 pod 提供服务,而其他 pod 在我的集群上仍未使用。

如果我启动客户端的多个实例,它会选择不同的节点或 pod,但我对来自一个异步客户端连接的调用发生这种情况感兴趣。

这可能吗?如果可以,是否需要一些特定的配置?

(我意识到我可以从一个脚本打开多个连接,但这似乎不是最佳选择??)

我还应该提到,我正在运行一个本地 kubernetes 设置,其中只有几个节点是使用 kubeadm 设置的。

【问题讨论】:

    标签: kubernetes


    【解决方案1】:

    kube-proxy 是一个 L4 负载均衡器,因此它无法区分一个流中的单独 http 请求 (L7)。根据您尝试实现的 L7 代理(支持 HTTP/2)可能是一个解决方案。

    本文档中有一个很好的概述:https://grpc.io/blog/loadbalancing

    【讨论】:

    • 我可以仅使用 kubernetes 实现此(L7 负载均衡器)还是需要一些第三方解决方案?
    猜你喜欢
    • 2011-10-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-10
    • 2015-12-02
    • 2011-08-14
    • 2015-03-10
    相关资源
    最近更新 更多