如何实现Rancher与同AWS私有网段的EKS集群通过内网IP通信?
让Rancher与私有网段内的EKS集群通过内网IP通信的方案
以下是几种可行的实现方案,均可保留双方公网IP的同时走内网互通:
方案1:替换EKS集群kubeconfig的Server地址为内网Endpoint
- 获取EKS的内网端点:在AWS控制台进入EKS集群详情页,找到「Private endpoint」地址;或用AWS CLI执行
aws eks describe-cluster --name <你的EKS集群名> --query "cluster.endpointPrivate"获取 - 编辑Rancher中该EKS集群的kubeconfig配置,将
server字段的值替换为上述内网端点 - 保存配置后,Rancher会通过内网IP与EKS集群建立通信
方案2:确保内网访问的网络权限配置
- 确认EKS集群已启用「Private access」(AWS控制台EKS集群的「Cluster access」设置中检查)
- 检查Rancher所在实例(或节点)的安全组,添加允许访问EKS内网443端口的规则;同时EKS的控制平面安全组也要允许来自Rancher所在内网IP段的443端口访问
- 若Rancher部署在同VPC的EC2/EKS节点上,无需额外路由配置,默认即可通过内网互通
方案3:用Route 53私有托管区做域名解析劫持
- 在AWS Route 53中创建与EKS集群同VPC关联的私有托管区,域名设为EKS集群的公网域名(例如
xxxx.eks.amazonaws.com) - 在该私有托管区添加A记录,将域名指向EKS的内网IP地址
- 当Rancher解析EKS的公网域名时,会通过私有托管区返回内网IP,自动走内网通信,对外访问仍使用原公网IP
验证步骤
在Rancher所在节点执行curl <EKS内网端点>,若返回类似403 Forbidden(正常,因为需要认证),则说明内网连通性正常。
内容的提问来源于stack exchange,提问作者Rainbird
相关产品推荐
相关产品推荐

