【问题标题】:Google PubSub. Communication From AppEngine to Kubernetes pod and from one Kubernetes pod to another Kubernetes pod谷歌发布订阅。从 AppEngine 到 Kubernetes pod 以及从一个 Kubernetes pod 到另一个 Kubernetes pod 的通信
【发布时间】:2020-08-12 18:35:18
【问题描述】:

在这两种情况下如何发送和接收消息?

我们正在将我们的应用从 appengine 迁移到 kubernetes。我们有两个以这种方式分布的微服务:

开发环境

  • 服务 1:在 Kubernetes pod(名为 1 的集群)上运行。它在 AppEngine 上运行
  • 服务 2:在 Kubernetes pod(名为 1 的集群)上运行。它在 AppEngine 上运行

问题是服务 1 不断向 AppEngine 上的服务 2 发送 pubsub 消息。它应该向运行在 Kubernetes 上的服务 2 发送 pubsub 消息

生产环境

  • 服务 1:在 AppEngine 上运行,但很快它将在 Kubernetes pod(名为 1 的集群)
  • 服务 2:在 AppEngine 上运行,但很快它将在 Kubernetes pod(名为 1 的集群)

在生产环境中,现在服务 1 和 2 通过 pubsub 进行通信。将生产环境中的两种服务迁移到 Kubernetes pod 的最佳方式是哪种(以及以什么顺序)?

我正在考虑将服务 1 和 2 同时移动到 Kubernetes 并开始使用 http rest 在它们之间发送和接收消息(这意味着停止使用 Google PubSub),但我不确定。我看到的另一个问题是推送端点需要 https,而我的 kubernetes 服务的外部 ip 是 http

【问题讨论】:

    标签: docker google-app-engine kubernetes google-cloud-pubsub kubernetes-pod


    【解决方案1】:

    解决办法是:

    1) 将 pubsub 订阅更改为 pull 类型

    2) 创建服务帐号凭据

    3) 适配的服务代码(现在在 Kubernetes 中运行),以便它实际拉取 pubsub 消息

    【讨论】:

      【解决方案2】:

      PubSub 消息被发送到一个主题。该主题的每个侦听器(例如 GAE 服务 2 和 k8s 服务 2)都会收到发送的消息。

      如果您想根据来源(GAE 和 k8s)区分消息,最简单的方法是创建另一个主题。并且只在 k8s 服务中配置这个新主题。

      但是,如果服务也这样做,我看不出共享 pubsub 主题可能是什么问题。

      【讨论】:

      • 感谢您的回答。问题是我没有看到 k8s 服务 2 接收 pubsub 消息
      • 啊,好的。这个tutorial 在Kubernetes 中为主题echo 设置了一个回显服务。在代码 main.py here 上,您可以将主题名称更改为您的主题名称以测试连接。
      • 谢谢,但我看到的另一个问题是推送端点需要 https,而我的 kubernetes 服务的外部 IP 是 http
      猜你喜欢
      • 1970-01-01
      • 2020-04-20
      • 2020-07-27
      • 1970-01-01
      • 1970-01-01
      • 2020-01-16
      • 2021-06-19
      • 1970-01-01
      • 2019-04-08
      相关资源
      最近更新 更多