跨AWS账号EKS集群间私有服务发现与全局服务网格实现方案咨询
跨AWS账号EKS集群全局服务网格最优实现方案
核心选型:AWS App Mesh + 跨账号网络互通
优先采用AWS原生App Mesh,与EKS深度集成,无需第三方依赖,私有通信链路可控性强,适配AWS生态权限体系。
一、跨账号网络打通(二选一)
方案1:VPC对等连接(适合双集群极简场景)
- 确认两个EKS集群的Pod CIDR、服务CIDR无重叠,在双方AWS账号间创建私有VPC对等连接
- 配置双方VPC安全组,放行App Mesh Envoy侧car流量(端口范围
15000-15099)及业务服务通信端口 - 更新双方VPC路由表,添加对端VPC、Pod CIDR的路由条目
方案2:Transit Gateway(适合未来扩展多集群场景)
- 在任意一个账号创建Transit Gateway,通过AWS RAM共享至另一个账号
- 将两个EKS集群所在VPC挂载到Transit Gateway,开启路由传播实现全网络互通
- 配置安全组规则,放行App Mesh及业务流量
二、全局服务网格部署
- 在两个EKS集群中分别安装App Mesh控制器:
eksctl create addon --name appmesh-controller --cluster <集群名称> --region <区域> - 创建全局Mesh资源:在其中一个集群创建Mesh,通过AWS RAM共享给另一个账号的EKS集群
- 在两个集群的业务命名空间添加标签
appmesh.k8s.aws/sidecarInjectorWebhook: enabled,自动注入Envoy侧car
三、跨账号服务发现与通信配置
- 为每个集群的业务服务定义
VirtualNode和VirtualService,统一使用全局域名后缀(例如.global) - 配置
VirtualRouter和Route规则,实现跨集群流量的路由策略(权重分配、故障转移等) - 采用AWS CloudMap作为全局服务发现:在两个账号中配置同一全局命名空间,将EKS服务注册至该空间,App Mesh自动通过CloudMap发现跨集群服务实例
四、权限与安全加固
- 为两个账号的App Mesh控制器配置IAM角色,允许访问对方账号的CloudMap、Mesh资源
- 启用App Mesh mTLS加密,跨集群服务调用全程加密,无需手动管理SSL证书
- 通过IAM Policy限制跨账号服务访问权限,仅授权指定服务间的调用
验证方法
- 在集群A的测试Pod中调用集群B的服务全局域名(例如
service-b.global),验证业务响应正常 - 通过App Mesh控制台查看跨集群流量监控指标,确认流量路径、健康状态符合预期
内容的提问来源于stack exchange,提问作者Jay Saini
相关产品推荐
相关产品推荐

