【问题标题】:Possible to deploy or use several containers as one service in Google Cloud Run?可以在 Google Cloud Run 中部署或使用多个容器作为一项服务吗?
【发布时间】:2021-01-27 12:01:42
【问题描述】:

我正在按照官方说明测试 Google Cloud Run:

https://cloud.google.com/run/docs/quickstarts/build-and-deploy

是否可以在 Google Cloud Run 中部署或使用多个容器作为一项服务?例如:DB服务器容器、Web服务器容器等

【问题讨论】:

    标签: deployment containers google-cloud-run


    【解决方案1】:

    简答NO。您不能在同一个服务上部署多个容器(就像在 K8S 上使用 Pod 一样)。

    不过,您可以run several binaries in parallel on the same container -> 本文由从事 Cloud Run 工作的 Google 员工撰写。

    另外,请记住

    • Cloud Run 是一款无服务器产品。它可以根据需要(尤其是根据流量)放大和缩小(到 0)。如果启动持续时间很长并且创建了一个新的服务实例,则查询将需要时间来提供服务(并且您的使用将等待)
    • 按使用付费,我的意思是,仅在处理 HTTP 请求时才向您收费。超出处理期,分配给实例的 CPU 接近于 0。
      • 这意味着 Cloud Run 为处理 HTTP 请求的容器提供服务。您不能在后台对任何 HTTP 请求进行批处理。
    • Cloud Run 是无状态的。您有一个短暂的内存可写目录 (/tmp),但是当实例关闭时,所有数据都会关闭。您不能运行存储数据的数据库服务器容器。您可以与外部服务(Cloud SQL、Cloud Storage 等)交互,但只能在本地存储临时文件

    【讨论】:

      【解决方案2】:

      直接回答您的问题,我认为不可能部署具有两个不同容器的服务:DB 服务器容器和 Web 服务器容器。这不包括缩放(服务会自动缩放到一定数量的容器实例)。

      但是,您可以部署一个包含多个进程的容器(一项服务),尽管它可能不被视为最佳实践,如 article 中所述。

      Cloud Run 获取用户的容器并在 Google 基础架构上执行它,并根据用户指定的参数无缝处理该容器的实例化(缩放)。

      要部署到 Cloud Run,您需要提供容器映像。正如documentation 指出的那样:

      容器映像是一种打包格式,其中包括您的代码、其包、任何所需的二进制依赖项、要使用的操作系统以及运行您的服务所需的任何其他内容。

      为了响应传入的请求,服务会自动扩展到一定数量的容器实例,每个容器实例都运行已部署的容器映像。 Services是Cloud Run的主要资源。

      每个服务都有一个唯一且永久的 URL,当您向其部署新修订时,该 URL 不会随着时间而改变。有关容器运行时合约的更多详细信息,您可以参考documentation

      由于上述原因,Cloud Run 主要设计用于运行 Web 应用程序。如果您追求的微服务架构由不同的服务器组成,每个服务器在不同的容器中运行,您将需要部署多个服务。我了解您希望使用 Cloud Run 作为数据库服务器,但您可能对 Google's database solutions 感兴趣,例如 Cloud SQL、Datastore、BigTable 或 Spanner。

      【讨论】:

      • Cloud Run 不是一个任意的 docker 引擎(这样说是不公平的。):) 容器必须是监听 $PORT 的 HTTP 服务器。
      • 谢谢并同意。我可以很快解决这个问题! :)
      • 我至少可以让 Redis DB 在与我的 Web 服务器相同的服务上运行吗?一个云内存存储Redis的成本非常高,我只需要它用于可能忘记的登录信息
      猜你喜欢
      • 2019-10-24
      • 2021-02-26
      • 2020-06-26
      • 2022-10-24
      • 2021-12-05
      • 2020-09-26
      • 2021-06-09
      • 2020-08-27
      • 2021-05-27
      相关资源
      最近更新 更多