从Kubernetes上运行的应用程序订阅云发布/订阅主题

时间:2019-07-01 14:28:57

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

我创建了一个发布/订阅主题,每次将新对象上传到存储桶时,我都会向该主题发布消息。现在,我想创建一个订阅,以在每次将新对象上载到该存储桶时将通知推送到端点。根据文档,我想要这样的东西:

gcloud alpha pubsub subscriptions create orderComplete \ --topic projects/PROJECT-ID/topics/TOPIC \ --push-endpoint http://localhost:5000/ENDPOINT/ --ack-deadline=60 但是我的应用程序正在kubernetes上运行,看来pub / sub无法到达我的端点。有什么建议吗?

3 个答案:

答案 0 :(得分:1)

为了使Cloud Pub / Sub将消息推送到您的应用程序,您需要提供一个公共可访问的端点。在Kubernetes中,这很可能意味着暴露Service。这样,您应该具有一个非本地(即没有“ localhost”)URL才能访问运行您的二进制文件的容器。

在创建Cloud Pub / Sub订阅之前,您还应该使用Cloud Console verify your domain

最后,您可以通过changing its configuration将订阅设置为推送消息:

gcloud pubsub subscriptions modify-push-config mySubscription \
  --push-endpoint="https://publicly-available-domain.com/push-endpoint"

答案 1 :(得分:1)

是的,因此@ jakub-bujny指出您需要SSL端点。因此,在GKE上,一种解决方案是将google's managed certificates与Ingress资源一起使用(链接向您展示如何使用)

答案 2 :(得分:0)

站在documentation

  

通常,推送端点必须是可公开访问的HTTPS   服务器,出示由证书签名的有效SSL证书   权威和可路由的DNS。

因此,您必须按照此处所述使用Ingress通过HTTPS公开服务: https://cloud.google.com/kubernetes-engine/docs/concepts/ingress