You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

GKE集群Pod流量走节点VM IP而非Cloud NAT如何解决

问题根因

当GKE节点被分配了外部公网IP时,Google Cloud VPC默认出站路由优先级更高,会优先使用节点自身的公网IP转发流量,覆盖Cloud NAT的路由规则,因此访问公网服务时返回的是节点IP而非Cloud NAT的地址。

配置步骤

方案1:移除GKE节点公网IP(推荐)

移除节点公网IP后,所有出站流量默认走Cloud NAT,是官方推荐的安全配置方案:

  • 新建集群配置:创建集群时在「节点池」→「联网」设置中,将外部IP访问选项设置为已禁用
  • 现有集群配置:执行以下命令更新节点池为私有节点模式,执行后节点会滚动重建,新节点不会分配公网IP:
    gcloud container node-pools update [节点池名称] --cluster [集群名称] --zone [可用区] --enable-private-nodes
    

方案2:保留节点公网IP,强制走Cloud NAT

如果业务需要保留节点的公网IP,可修改Cloud NAT配置实现强制路由:

  • 进入Cloud NAT控制台,打开对应NAT规则的编辑页面
  • 找到「NAT 针对以下对象启用」配置项,选择所有实例(包括具有外部 IP 地址的实例)
  • 保存配置后等待1-2分钟规则生效即可
验证配置

配置生效后,启动测试Pod验证出站IP,返回结果应和Cloud NAT的公网IP一致:

kubectl run -it --rm --image=curlimages/curl nat-test -- curl ifconfig.me

你之前配置的All subnets' primary and secondary IP ranges规则已覆盖GKE Pod的secondary IP段,无需额外修改。

内容的提问来源于stack exchange,提问作者NimaKapoor

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 03:42:01