【问题标题】:How do I deploy a GRPC server and client on Google Cloud Platform?如何在 Google Cloud Platform 上部署 GRPC 服务器和客户端?
【发布时间】:2019-02-06 02:55:36
【问题描述】:

我是使用 GCP/Kubernetes 的新手。我想将 GRPC 服务和客户端都部署到 GCP。

我已经阅读了很多关于它的内容并尝试了几件事。在云端点上有一些东西,您可以在其中编译您的 proto 文件并执行 api.config.yaml。 (https://cloud.google.com/endpoints/docs/grpc/get-started-grpc-kubernetes-engine)

这不是我想要做的。我想用它的 .proto 上传一个 GRPC 服务并公开它的 HTTP/2 公共 IP 地址和端口。然后,部署一个与该地址交互并公开 REST 端点的 GRPC 客户端。

我怎样才能完成这项工作?

【问题讨论】:

  • 几个月前我也做过同样的事情。我在 github grpc 服务器 (github.com/balchua/grpc)、grpcdomain (github.com/balchua/grpcdomain) 中有 3 个项目,其中仅包含 proto,然后是代码生成。最后是演示 (github.com/balchua/demo),它公开了一些 web pagr 并与 grpc 服务器通信。所有示例都带有 kube 清单。如果你有兴趣可以去看看。不幸的是,我没有文档,并且只有 java 。

标签: kubernetes google-cloud-platform grpc google-kubernetes-engine grpc-node


【解决方案1】:

将 grpc 应用程序部署到 GKE/Kubernetes:

  1. 了解 gRPC,遵循https://grpc.io/docs/quickstart/ 的快速入门之一
  2. 了解如何为您的应用程序构建 Docker 映像。
  3. 拥有 Docker 映像后,请按照 https://cloud.google.com/kubernetes-engine/docs/tutorials/hello-app 教程学习如何:
    • 将容器映像推送到 Google Container Registry
    • 创建 GKE 集群
    • 部署容器镜像
    • 通过 IP 地址将其公开在公共互联网上。

这些应该是好的开始。

请注意,gRPC 应用程序与 HTTP Web 服务器应用程序没有太大区别。就 Kubernetes 而言,它们只是一个带有端口号的容器镜像。 :)

【讨论】:

  • 嘿@Ahmet,谢谢。但是,在将映像部署到 GKE 时,我遇到了以下错误:Failed to pull image "gcr.io/[...]/[...]": rpc error: code = Unknown desc = Error response from daemon: repository gcr.io/[...]/[...] not found: does not exist or no pull access。我已从我的 GCP GCR 页面确认该图像已正确列出。知道会发生什么吗?
  • 很可能您没有正确遵循本教程。请注意,如果您要拉取镜像,您的 GKE 集群和 GCR 注册表必须位于同一个 Google Cloud 项目中。
  • 完成。谢谢你。你是对的,我使用的集群不正确。
  • 嘿 @AhmetB-Google applogogies 回复这么老的答案 我的项目中有多个服务,所以我需要单独部署每一个吗?我应该遵循什么来部署我的应用程序?我应该关注this 吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-07-06
  • 2020-11-14
  • 2020-02-04
  • 2019-05-23
  • 2020-04-03
  • 2016-01-27
相关资源
最近更新 更多