我有一个项目中的云运行服务列表,并配置为启用互联网。我有默认网络。 没有与 Cloud Run 服务关联的 VPC。
云运行服务之间的流量会出口到互联网还是会在 Google Cloud 平台内部?
我确实理解,如果 Cloud Run 服务映射为内部,则流量是项目内部的。
尽管标记为启用互联网,但我预计流量是内部的。 关联VPC引入流量限制合适吗?
嗯。不。需要考虑不同的方面。
首先,无服务器服务没有在您的项目中运行,我的意思是,运行代码的服务器不在您的项目中,而是在 Google 管理的项目中。因此,无服务器无服务器服务本质上永远不会在您的 vpc 中。您必须将它们插入其中才能在您的 VPC 中路由流量。
话虽如此,您还必须注意流量方向:出口和入口。
您可以设置内部入口、内部和负载平衡或全部。这意味着只有来自入口设置的请求才被允许调用您的服务:
也许告诉您很奇怪,Cloud Run 默认情况下没有插入您的 VPC,但只允许来自您的 VPC 的流量访问您的 Cloud Run 服务。事实上,您的流量始终经过身份验证(Google Cloud 网络中的其他元数据)。而且,当您访问 Cloud Run 服务并设置内部入口时,会对流量来源进行额外检查,例如对网络流量元数据的防火墙规则。
最后,您得到了出口流量。此流量是由 Cloud Run 服务本身发起的请求(例如您的服务发出的 API 调用)。默认情况下,出口流量直接到达互联网(直接从 Google 管理的项目到达互联网)。您还可以通过直接连接到 VPC 或无服务器 VPC 连接器来控制出口。它桥接 Google 管理的网络和您的 VPC。在这里,如果您想访问私有可寻址 IP(例如 Compute Engine、GKE、您的 OnPrem 环境,如果您有 VPN/互连,...),则只能路由私有 IP(内部流量)。您还可以将出口设置为 ALL,以将私有和公共流量路由到您的 VPC。这里的价值是捕获 VPC 中的互联网流量并将其包装在静态 IP 中的能力(通常使用 Cloud NAT)。
也许一开始还不清楚,但是考虑到这一点,重新阅读文档并执行一些测试,就会有意义;)