Google Cloud Run容器网络

时间:2019-08-28 10:05:00

标签: docker networking google-cloud-run

我在docker容器中有一个应用程序/服务系统,当我使用docker-compose提出应用程序/服务时,会使用网桥网络相互交谈。

工人启动并向经理注册。经理分配工人要做的工作。为此,工人需要知道经理在哪里,经理需要知道工人在哪里。

我想将它们全部部署到Google Cloud Run。

目前,在docker中,通过docker-compose,他们使用自己的容器名称相互交谈。例如,工作人员可以致电:http://manager:5000/register?name=worker1&port=5000在启动时注册,然后经理可以致电http://worker1:5000发送工作。全部归功于它们连接到同一网桥网络的事实。

这如何与Google Cloud Run一起使用?据我所知,当您创建与容器链接的服务时,您将获得一个永久URL,以便在应用启动后与其进行通信。容器中的应用程序不知道URL是什么。

我可以使用服务名称以与docker网桥相同的方式相互通信吗?

2 个答案:

答案 0 :(得分:1)

实际上,您无法以相同的方式来协调工作人员。实际上,Cloud Run服务会回复HTTP请求。生成实例后,就不会向管理者注册。

如果要并行执行多个任务,请执行几个HTTP请求。

如果要在同一服务的不同实例之间实现强烈隔离,请将并发参数设置为1(该服务的实例在同一时间仅处理1个HTTP请求)。

有关信息,同一服务最多可以有100个实例。

因此,部署经理服务和辅助服务。经理服务向具有正确参数的工作人员执行HTTP请求,以执行正确的工作。

照顾工作时间。目前,最多可以将超时设置为900秒(15分钟)

关于命名,模式如下:https://<service-name>-<project-hash>.run.app/

答案 1 :(得分:1)

Cloud Run当前不支持项目中其他服务的基于主机名的服务发现。

当前,最好的选择是使用环境变量或类似的东西配置应用程序依赖的服务URL。