【问题标题】:Google Cloud Run (fully managed) - Can a container redirect to another container?Google Cloud Run(完全托管) - 容器可以重定向到另一个容器吗?
【发布时间】:2020-09-26 15:54:04
【问题描述】:

背景: 尝试在 Google Cloud Run(完全托管)中运行 Vault 并尝试确定是否可以设置 HA。 Vault 需要单个活动节点(容器),并且需要转发或重定向到备用节点(容器)的入站请求。

转发意味着另一个端口上的侧连接(即 tcp/8200 上的客户端和 tcp/8201 上的 pod-to-pod)。这可能吗,我在文档中没有看到任何关于此的内容。

重定向意味着备用节点(容器)需要 307 重定向到活动节点的地址。这可以是 Cloud Run url 或 pod 特定的 url。如果是 Cloud Run url,那么负载均衡器可以直接将其发送回备用节点(循环);不好。它需要是 pod url。 Cloud Run“代理”(不确定如何称呼它)是否能够接受客户端请求,但会在 pod 之间进行内部重定向以到达活动 pod?

【问题讨论】:

    标签: google-cloud-platform google-cloud-run


    【解决方案1】:

    您似乎对 Cloud Run 的编程和流量服务模型不熟悉。我建议查看文档和https://github.com/ahmetb/cloud-run-faq 以获得一些答案。

    简要回答您的一些观点:

    • Cloud Run 上运行的容器只能向外界公开 1 个端口号
    • Cloud Run 应用只能通过 HTTPS(包括 gRPC)协议通过端口 :443 访问。
    • 您无法确保在 Cloud Run 上一次运行 2 个容器(这不是它的设计目的,Kubernetes 或 VM 更适合这样做)。
    • 根据定义,Cloud Run 用于运行无状态 HA 应用
    • Cloud Run 中没有“pod URL”之类的东西。一个应用的多个副本将具有相同的地址。
    • 如您所说,Cloud Run 无法区分同一应用的多个实例。如果容器将请求转发到自己的 URL,它可能最终会再次收到请求。

    最好的办法是将这两个容器作为单独的应用程序部署到 Cloud Run,这样它们就有不同的 URL 和不同的生命周期。您可以将“最大实例数”设置为 1,以确保这些 VaultService1 和 VaultService2 永远不会获得额外的副本。

    【讨论】:

      猜你喜欢
      • 2019-09-10
      • 1970-01-01
      • 2023-03-09
      • 2021-02-03
      • 1970-01-01
      • 2020-10-01
      • 2020-06-15
      • 1970-01-01
      • 2021-01-27
      相关资源
      最近更新 更多