【问题标题】:Deterministic routing with key to a gRPC service in Kubernetes具有 Kubernetes 中 gRPC 服务密钥的确定性路由
【发布时间】:2019-09-19 19:52:14
【问题描述】:

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

【问题讨论】:

    标签: kubernetes routing grpc


    【解决方案1】:

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

    Nginx 和 HAProxy 是 L7 负载均衡器的选项之一,但对于微服务架构来说过于重量级。你可以考虑EnvoyLinkerd,都支持gRPC。

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

    您可以通过此official tutorial 轻松开始使用 Linkerd。

    【讨论】:

      猜你喜欢
      • 2021-03-26
      • 1970-01-01
      • 2020-10-09
      • 1970-01-01
      • 2020-10-15
      • 2017-09-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多