能否为App Engine Flex配置静态外部IP并通过Cloud NAT实现出站路由?
解决步骤
- 调整
app.yaml中的网络配置,新增禁用实例公网IP的参数,完整配置如下:
network: name: default subnetwork_name: app-engine-subnet instance_ip_mode: private
App Engine Flex默认会为每个实例自动分配临时公网IP,实例存在公网IP时,出站流量会优先走自身公网IP,不会触发Cloud NAT路由。添加instance_ip_mode: private配置后,实例只会分配内网IP,所有出站流量才会匹配VPC路由规则,走你配置的Cloud NAT。
- 确认Cloud NAT配置符合要求:
- NAT关联的Cloud Router和你部署Flex应用的VPC为同一个
- NAT的映射规则覆盖了Flex所在的子网
app-engine-subnet,可选择覆盖整个VPC或者仅指定对应子网 - NAT的外部IP地址选项选择的是你提前预留的静态IP,而非自动分配的IP池
- 重新部署App Engine Flex应用,部署完成后等待1-2分钟让实例完全启动,再测试出站IP即可。如果之前部署过带公网IP的版本,建议先删除旧版本再部署新版本,避免旧实例流量干扰测试结果。
内容的提问来源于stack exchange,提问作者Kristian Salo
相关产品推荐
相关产品推荐

