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

如何在AWS中实现同VPC及跨VPC的EKS集群gRPC调用?

AWS EKS集群间gRPC通信实现方案

一、同VPC下开发/Staging集群间的gRPC通信

两个集群处于同一VPC,网络天然连通,只需完成服务暴露和安全组配置:

  • 用内部NLB暴露gRPC服务:
    在目标集群(如staging)的gRPC服务部署中,通过AWS Load Balancer Controller创建内部网络负载均衡器(Internal NLB),添加注解service.beta.kubernetes.io/aws-load-balancer-internal: "true"指定内部LB,同时配置service.beta.kubernetes.io/aws-load-balancer-target-group-attributes: "proxy_protocol_v2.enabled=true"适配gRPC的HTTP/2协议。
  • 安全组规则配置:
    允许源集群(开发)的节点安全组,向目标集群NLB的安全组发起gRPC默认端口(50051)的TCP流量;目标集群节点安全组允许NLB流量访问gRPC服务端口。
  • 调用方式:
    在开发集群的fullrest服务中,直接使用NLB的内部DNS名称或私有IP作为gRPC请求的目标地址。

也可选择轻量方案:

  • 节点IP+NodePort访问:将gRPC服务设为NodePort类型,确保源集群节点能访问目标集群节点的NodePort端口,直接用目标节点私有IP加端口调用。
  • 跨集群DNS转发:若两个集群都用CoreDNS,配置转发规则,将目标集群的服务域名(如grpc-service.staging.svc.cluster.local)转发到目标集群CoreDNS的服务IP,实现类内部服务发现的调用。

二、跨VPC向生产集群发送gRPC请求

生产集群在独立VPC,需先打通网络再配置服务暴露:

  1. 建立VPC网络连通:
    • VPC对等连接:在AWS控制台创建源VPC(开发/staging所在)与生产VPC的对等连接,双方接受请求后,更新各自VPC路由表,添加对方VPC CIDR的路由条目,指向对等连接。
    • Transit Gateway(推荐多VPC场景):将所有相关VPC挂载到中转网关,统一管理路由,简化多VPC连通逻辑。
  2. 配置跨VPC服务暴露:
    在生产集群中创建内部NLB暴露gRPC服务(添加service.beta.kubernetes.io/aws-load-balancer-internal: "true"注解),确保NLB子网在生产VPC内,且安全组允许源VPC CIDR的gRPC端口TCP流量。
  3. 验证安全组与路由:
    • 源VPC节点安全组允许向生产VPC NLB安全组发起gRPC端口流量;
    • 双方VPC路由表已添加对端CIDR的路由,指向对等连接/Transit Gateway。
  4. 调用方式:
    在开发/staging集群的fullrest服务中,使用生产集群NLB的内部DNS名称(可通过Route 53私有托管区实现跨VPC DNS解析)或生产VPC私有IP作为请求目标。

额外注意事项

  • gRPC基于HTTP/2,NLB的TCP模式完全兼容gRPC流量,无需额外配置;
  • 若启用TLS加密gRPC通信,服务端需配置证书,客户端携带对应根证书完成验证;
  • 测试阶段可使用grpcurl工具在源集群节点验证连通性,比如执行grpcurl -plaintext <目标地址>:50051 list。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 11:05:19