【问题标题】:Reconnect grpc client重新连接grpc客户端
【发布时间】:2021-09-27 21:06:44
【问题描述】:

我有一些 pod 运行一些服务(例如身份验证服务)。它通过 grpc 向客户端服务发送请求。当客户端服务重新启动时,Pod 的 IP 地址会发生变化。然后身份验证服务接收到该服务的新 IP 客户端。但是,没有重新连接。如何重新连接?

【问题讨论】:

  • k8s services 的设计目的是跟踪 pod 更改的 IP。因此,在为您的服务寻址时使用 DNS 名称而不是 IP。

标签: kubernetes grpc kubectl microk8s


【解决方案1】:

我建议您阅读 Kubernetes 基础知识以熟悉一些核心对象,这确实有助于了解总体情况。

与您的问题有关,我会阅读有关服务的信息:https://kubernetes.io/docs/tutorials/kubernetes-basics/expose/expose-intro/

您可能想要使用服务。

【讨论】:

    【解决方案2】:

    正如@colm.anseo 所述,kubernetes 服务旨在跟踪 pod 更改 IP。因此,在为服务寻址时,不要使用 IP 地址,而是使用 DNS 名称。当 DNS 更新时,gRPC 将自动重新连接到新地址,并且 DNS 会定期刷新(连接错误时;最多每 30 秒一次,如果当前没有连接地址,则使用指数回退)。每次重新连接尝试都意味着解析 DNS 地址,尽管由于旧 DNS 条目的 TTL(生存时间),它可能不会立即检测到新地址。有关信息,请参阅DNS for Services and Pods

    【讨论】:

      猜你喜欢
      • 2017-01-09
      • 2020-09-05
      • 1970-01-01
      • 2021-05-26
      • 1970-01-01
      • 2020-10-25
      • 1970-01-01
      • 2017-05-25
      • 2017-12-24
      相关资源
      最近更新 更多