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

EKS私有子网工作节点访问AWS LoadBalancer的正确配置方案咨询

根因说明

你遇到的访问逻辑问题本质是流量路径的源IP变化:

  • 你当前配置的Route53记录默认将域名解析到LoadBalancer的公网IP
  • 私有子网内的Pod访问公网IP时,流量会先经过NAT网关做源地址转换,访问LoadBalancer的请求源IP会被替换为NAT网关的公网IP,而非工作节点的私有IP
  • 因此你放行工作节点安全组的规则不会匹配到来自NAT网关的公网请求,才会出现超时

第一个问题:放行NAT网关公网IP的方案是否正确

该方案技术上可以解决当前问题,但不是最优选择:

  • 可行的前提是你使用弹性EIP作为NAT网关的公网IP,不会随NAT网关重建/变更而修改
  • 缺陷是维护成本高:如果有多可用区多NAT网关、多VPC访问的场景,需要手动维护大量公网IP规则,安全性也弱于安全组引用的方式

更简洁合理的访问方案

根据你的业务场景可以选择以下任意一种方案,都是生产环境的常用最佳实践:

方案1:开启公网LoadBalancer的私有DNS解析(最推荐,适配公网LB同时对内对外提供服务的场景)

如果你的LoadBalancer是公网ALB:

  • 开启ALB的Private DNS Name功能,开启后,同VPC内访问ALB的公网域名时,会自动解析到ALB的VPC内网接口IP
  • 流量全程走VPC内部路由,不需要经过NAT网关和公网,请求源IP为工作节点的私有IP
  • 此时只需要在LoadBalancer安全组入站规则中引用工作节点安全组作为源,即可完成访问放行,无需维护任何公网IP规则

方案2:配置Route53私有托管区拆分解析

如果你的LoadBalancer是NLB,或者不想修改LB配置:

  • 创建和公网托管区同名的Route53私有托管区,关联到你的EKS集群所在VPC
  • 在私有托管区中添加同域名的A记录,指向LoadBalancer的VPC内网IP
  • 效果和方案1完全一致,VPC内部访问域名时直接解析到内网IP,走内网流量,适配安全组引用规则

方案3:切换为内部LoadBalancer

如果该LoadBalancer仅需要给VPC内部(包括EKS集群)的业务提供服务,不需要对外暴露公网入口:

  • 直接将LoadBalancer的类型修改为internal,不会分配公网IP,所有访问都是VPC内部流量
  • 直接在安全组放行工作节点安全组即可,不需要额外的DNS配置

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 15:39:03