【发布时间】:2017-09-09 15:11:31
【问题描述】:
我有一个 3 个 nodejs grpc 服务器 pod 和一个用于 grpc 服务的无头 kubernetes 服务(返回所有 3 个 pod ip,其中 dns 使用 pod 内的 getent 主机测试)。然而,所有 grpc 客户端请求总是在单个服务器上结束。
根据https://stackoverflow.com/a/39756233/2952128(最后一段)应该可以在 2017 年第一季度实现每次通话的循环。我使用的是 grpc 1.1.2
我尝试将{"loadBalancingPolicy": "round-robin"} 作为new Client(address, credentials, options) 的选项并使用dns:///service:port 作为地址。如果我正确理解文档/代码,则应将其传递给 c 核心并使用新实现的循环通道创建。 (https://github.com/grpc/grpc/blob/master/doc/service_config.md)
这就是循环负载平衡器现在应该如何工作的方式吗? grpc 1.1.2 已经发布了吗?
【问题讨论】:
-
您是否尝试过服务类型:ClusterIP?它应该适用于循环。请记住,gRPC 客户端可能正在缓存连接,因此如果您仅使用一个客户端进行测试,则可能是因为 gRPC。
-
是的,我也试过了。它的行为相同。也不确定这是否正确,因为我期待 gRPC 的客户端循环。 link。因为据我了解,这正是拥有许多缓存的打开连接并在每次调用的基础上进行更改的想法。所以所有的客户都需要所有的 IP,这就是我尝试 Headless 的原因。
标签: node.js kubernetes grpc