使用Kubernetes中的gRPC服务的密钥进行确定性路由

时间:2019-09-19 19:52:14

标签: kubernetes routing grpc

我在Kubernetes中运行着一个gRPC微服务,目前只有一个Pod,我想增加微服务的Pod数量,但是为了做到这一点,我想始终将同一密钥路由到同一Pod,为了避免出现竞争情况,我想了解如何实现此功能。

1 个答案:

答案 0 :(得分:1)

在这种情况下,您需要第7层(L7)负载平衡器,因为它们在应用程序层运行并且可以检查流量以做出路由决策。最重要的是,它们可以支持HTTP / 2协议(gRPC使用该协议)。

Nginx和HAProxy是L7负载平衡器的选项之一,但对于微服务架构而言太重了。您可以考虑一下EnvoyLinkerd,它们都支持gRPC。

可以将Pod复制以提供扩展,并封装在称为服务的抽象中,这些抽象为访问基础Pod提供了稳定的IP地址。从Kubernetes 1.2开始,点击服务IP的默认行为是将返回一个随机的后端Pod。但是,您可以将服务重新配置为无头的,以便服务IP将返回可用的pod IP的整个列表,从而使您能够执行自己的服务发现。

您可以轻松地从official tutorial开始使用Linkerd。