本页面概述了为 Cloud Run 资源配置网络选项的最佳实践。在创建资源之前,我们建议您查看本页面中的所有部分,了解 Cloud Run 支持的网络选项及其影响。
最佳做法:
监控 IP 地址使用情况。使用非 RFC 1918 IP 地址。
使用 IPv4 和 IPv6(双栈)子网。
使用连接池和重复使用连接。
更快的外部吞吐量(到互联网)。
向 Google API 的内部吞吐量更快。
监控 IP 地址使用情况
如果您使用的是直接 VPC 出站流量,请确保您的子网有足够的 IP 地址。您使用的 IP 地址数量取决于工作负载运行的实例数量,因此我们建议您监控 IP 地址用量。请确保您的 IP 用量随时间的推移保持在子网支持的范围内。
如需估算 IP 地址用量,请执行以下操作:
在 Google Cloud 控制台中,前往 Cloud Monitoring Metrics Explorer 页面:
使用指标类型
run.googleapis.com/container/instance_count
查询项目中的实例数量。借助 Cloud Monitoring,您可以查看此指标随时间的变化情况。将实例数指标的值乘以 4,即可估算出正在使用的 IP 地址数量。
IP 地址用尽策略
在将 RFC 1918 专用 IP 地址空间与直接 VPC 出站搭配使用时,如果有大量 Cloud Run 工作负载,可能会导致 IP 地址耗尽问题。以下策略可帮助您使用备用 IP 地址范围来管理 IP 地址耗尽问题。
使用非 RFC 1918 IPv4 地址
除了 RFC 1918 IPv4 地址范围之外,Cloud Run 还支持 RFC 6598 和 Class E/RFC 5735 范围。所有Google Cloud 服务和功能都支持这些非 RFC 1918 范围,包括 VPC 网络、Cloud 负载均衡和 Private Service Connect。
为获得最佳兼容性,我们建议您从 RFC 6598 (100.64.0.0/10) 范围开始。如果您已在其他位置使用此范围,不妨考虑使用 Class E/RFC 5735 (240.0.0.0/4)。由于 E 类 IP 地址空间非常大,可用的 IP 地址超过 2.68 亿个,因此可以长期支持您的业务增长。不过,E 类存在一些限制。例如,Windows 和某些本地硬件不支持此功能。了解如何利用 E 类 IPv4 地址空间来缓解 GKE 中的 IPv4 耗尽问题。
使用 IPv4 和 IPv6(双栈)子网
虽然这不会减少 IPv4 地址耗尽,但将应用迁移到 IPv6 是一个不错的开始。设置双栈资源,以免日后出现 IPv4 耗尽问题。
减少端口耗尽的策略
以下部分介绍了减少 Cloud Run 端口耗尽的策略。
使用连接池和重复使用连接
向单个目标 IP 地址发送大量请求时,请使用连接池来维护和重复使用与目标的连接。与单个 IP 地址的高连接率可能会耗尽出站端口并导致连接被拒绝错误。
性能和吞吐量策略
本部分介绍了可扩缩的选项,可提高互联网和 Google 服务的网络性能和吞吐量。
使用直接 VPC 出站流量实现更快的网络出站流量吞吐量
如需跨网络出站流量连接实现更快的吞吐量,请使用直接 VPC 出站流量来通过您的 VPC 网络路由流量。
示例 1:发送到互联网的外部流量
如果您要向公共互联网发送外部流量,请设置 --vpc-egress=all-traffic
以通过 VPC 网络路由所有流量。使用此方法时,您必须设置 Cloud NAT 以访问公共互联网。请注意,Cloud NAT 是付费产品。
示例 2:发送到 Google API 的内部流量
如果您使用直接 VPC 出站流量将流量发送到 Google API(例如 Cloud Storage),请选择以下选项之一:
- 使用专用 Google 访问通道指定
private-ranges-only
(默认值):- 设置
--vpc-egress=private-ranges-only
标志。 - 启用专用 Google 访问通道。
- 为专用 Google 访问通道配置 DNS。
确保您的目标网域(例如
storage.googleapis.com
)映射到以下内部 IP 地址范围之一:199.36.153.8/30
199.36.153.4/30
- 设置
- 使用专用 Google 访问通道指定
all-traffic
:- 设置
--vpc-egress=all-traffic
标志。 - 启用专用 Google 访问通道。
- 设置