首页 > 解决方案 > 如何在 Pod 间广播 gRPC 流

问题描述

我们有 gRPC 流来在两个微服务之间共享数据,一个 API 和一个 Worker(均在 Golang 中创建)。目的是监听 Worker 服务 pod 正在处理的作业的状态。因此,通信是单向的(Worker 向 Api 发送更新)。下图显示了它。 在此处输入图像描述

我们的问题是,我如何才能知道 Worker 的 pod 何时扩大,以便(通过流)订阅新的 Worker pod?

下图显示了问题。

在此处输入图像描述

标签: dockergokubernetesgrpckubernetes-pod

解决方案


也许这对您的用例来说是不可能的,但是您是否考虑过在工作人员面前提供服务,所以您不是订阅两个工作人员,而是订阅两者之一?

如果您需要同时订阅这两个工作人员,您可以做的一件事是使用 k8s API 客户端并使用选择器(按名称或其他标签)选择工作人员 pod 来观察 pod 资源,并在以下情况下订阅它新的弹出。这可能需要您为侦听器 pod 设置集群角色和集群角色绑定,以便它们可以监视 pod 资源。该计划还允许您在工人死亡时取消订阅工人。


推荐阅读