pubsub.NewClient方法停留在GKE golang上

时间:2017-10-07 09:59:58

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

我正在开发一个使用Google Pub / Sub客户端库的golang应用程序。我正在使用Google容器引擎进行部署。我按照以下步骤进行部署 -

  1. 使用CGO_ENABLED=0 GOOS=linux go build -o bin/app app.go
  2. 构建golang二进制文件
  3. 使用如下所示的dockerfile构建docker镜像。
  4. 创建kubernetes部署。
  5. Dockerfile -

    FROM scratch 
    ADD bin/app /
    CMD ["/app"]
    

    应用程序启动正常,我可以看到一些初始调试日志。但是,当我尝试使用client, err := pubsub.NewClient(ctx, projectId)实例化pub / sub客户端时,方法调用永远不会返回。在本声明之后,我没有看到日志消息。

    我有" Cloud Pub / Sub"我的GKE集群上启用了权限。此外,该应用程序在我的本地计算机上运行没有任何问题。

    可能是什么问题?

1 个答案:

答案 0 :(得分:3)

好的,所以我终于找到了问题及其解决方案。我的映像不包含pub / sub客户端(当然还有许多其他库)进行通信所需的任何SSL证书。

将本地计算机的/etc/ssl/certs/ca-certificates.crt文件添加到泊坞窗图像的/etc/ssl/certs/位置可解决问题。

在代码处这个令人敬畏的post是我学习这个解决方案的地方。