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

EKS集群应用同时支持集群内与对等VPC访问的服务选型咨询

结论

你不需要创建2个服务,单个内部Network Load Balancer(Internal NLB)类型的K8s Service即可同时满足集群内、跨VPC访问两种需求,是当前场景下最推荐的实现方式。


各方案可行性分析

双服务方案(ClusterIP+公网LoadBalancer):完全没必要

你提到的双服务配置会带来额外的维护成本,还可能出现两套访问入口的权限策略、版本对齐等问题,完全可以用单服务替代,且你原有配置里的external类型LB会生成公网入口,不符合内网跨VPC访问的安全需求。

单服务可选方案对比

  • ClusterIP类型:仅满足集群内访问需求,跨VPC场景不可用。EKS的ClusterIP网段属于K8s内部网段,默认不会同步到VPC路由表,旧VPC的EC2无法通过对等连接路由到ClusterIP,除非手动配置两个VPC的路由规则、额外做DNS解析适配,配置成本极高,不推荐。
  • NodePort类型:虽然旧VPC的EC2可以通过EKS节点的内网IP+NodePort访问,但缺陷非常明显:端口只能使用30000-32767的固定段、需要手动维护节点IP的负载均衡、节点故障会导致访问入口失效、安全组需要放开大范围端口的访问权限,风险高,不推荐。
  • Internal NLB类型(推荐):只需在你原有配置的基础上增加内部LB的注解即可,完整注解配置如下:
annotations:
    service.beta.kubernetes.io/aws-load-balancer-type: external
    service.beta.kubernetes.io/aws-load-balancer-nlb-target-type: ip
    service.beta.kubernetes.io/aws-load-balancer-internal: "true"

该方案的优势:

  • 集群内访问无兼容问题:K8s会自动完成服务域名解析,集群内Pod可以直接通过Service名访问,和普通ClusterIP的使用体验完全一致。
  • 跨VPC访问天然支持:两个VPC已经配置了对等连接,只要路由表、安全组规则放通旧VPC到NLB的访问,旧VPC的EC2可以直接通过NLB的内网DNS名访问服务,全程走内网,无公网带宽成本、 latency更低、安全性更高。
  • 运维成本低:AWS会自动维护NLB的可用性,无需关注EKS节点的生命周期变化,一套配置覆盖所有访问场景。

额外注意事项

确保两个VPC的路由表都配置了对方CIDR指向对等连接的规则,同时NLB关联的安全组需要放通集群内部CIDR、旧VPC CIDR的对应端口访问请求。如果需要旧VPC的EC2可以直接解析K8s Service的域名,可以将EKS所在VPC的Route53私有托管区关联到旧VPC即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 11:45:02