【问题标题】:Kubernetes cluster as pubsub push subscriberKubernetes 集群作为 pubsub 推送订阅者
【发布时间】:2019-01-17 14:13:41
【问题描述】:

如果我希望 Google Cloud Kubernetes 集群充当 pubsub 推送通知的订阅者,那么在节点上实际接收通知的最佳方式是什么?

我假设我需要指定一个负载均衡器作为订阅的端点,但是我可以\应该在每个 pod 上使用 nginx 来接收消息吗?还是别的什么?

有可用的模式或示例吗?

【问题讨论】:

  • 节点是托管虚拟机,所有更改都将在扩展或更新集群时丢失。你确定你是指节点吗?
  • 请参阅此stackoverflow thread 可能对您有所帮助。另外,如果提到节点,请澄清问题。另外,您可以使用nginx ingress
  • 是的,我的意思是 pod,谢谢。
  • 谢谢,其他线程几乎回答了这个问题。我只是在寻找发布订阅推送通知的 GKE 入口示例,以及如何实际侦听端口 443。ngnix 是接收推送通知并运行一些自定义代码的有效模式吗?
  • 我无法为您的用例找到示例。但是this 可能会对您有所帮助。您可以为 ngnix-ingress 控制器定义容器端口并根据要求使用。

标签: kubernetes google-cloud-platform google-cloud-pubsub google-kubernetes-engine


【解决方案1】:

如果您指的是 Cloud Pub/Sub,则当 Cloud Pub/Sub 主题上有新消息时,您的应用程序无法获得 HTTP 请求。这根本不是 Cloud Pub/Sub 的工作方式。

您的应用需要使用 Cloud Pub/Sub API 客户端收听消息。

这里有一个 GKE 上的示例 Pub/Sub 应用程序:https://cloud.google.com/kubernetes-engine/docs/tutorials/authenticating-to-cloud-platform 但它不会公开负载均衡器并根据需要通过 Ingress 获取消息。


“pubsub”,如果您指的是一般的“发布-订阅模式”,您可以创建一个多副本应用程序,将它们放在负载均衡器(或 Ingress)后面,然后让消息队列调用有消息时的端点。

但我不知道为什么这是一个问题,因为我刚刚描述了一个简单的负载平衡应用程序。

【讨论】:

  • 我看到了有关 Push Subscription 的文档,它似乎允许您在不需要 Pub/Sub SDK 的情况下使用每条新的 Pub/Sub 消息进行 HTTP 调用。还是我误解了这是干什么用的?
  • 你理解的没错,但你的问题与这个问题无关。
  • 在您的第一段中,您说只要 Pub/Sub 主题上有新消息,就不可能获得 HTTP 调用。但据我了解,推送订阅正是这样做的。
猜你喜欢
  • 2021-12-05
  • 1970-01-01
  • 2021-05-06
  • 2021-03-05
  • 2021-06-01
  • 2019-09-21
  • 2020-01-25
  • 2012-01-26
  • 2021-12-19
相关资源
最近更新 更多