同一VPC内EKS集群Pod无法连接MariaDB(RDS)
EKS Pod连接RDS超时的排查与修复方案
核心问题
你的RDS安全组入向规则仅开放了10.0.0.0/24网段,但EKS Pod的IP大概率不在这个网段内(你只配置了服务CIDR为10.100.0.0/16,Pod CIDR通常是独立的另一网段),同时EKS集群出向规则允许10.0.0.0/20,但RDS端未对应放行Pod的IP段,导致连通性失败。
具体修复步骤
1. 获取EKS集群的Pod CIDR
用AWS CLI执行命令,获取集群的Pod网段:
aws eks describe-cluster --name <你的集群名称> --query "cluster.resourcesVpcConfig.podCidr"
默认EKS的Pod CIDR是192.168.0.0/16,如果是自定义配置,以实际返回值为准。
2. 更新RDS安全组入向规则
编辑RDS的安全组,添加以下入向规则:
- 规则类型:TCP,端口3306,源为EKS的Pod CIDR网段
- (更安全的替代方案)源直接设置为EKS集群节点的安全组ID,这样所有Pod通过节点转发的流量都能被放行
3. 验证节点安全组配置
确认EKS节点的安全组出向规则允许访问TCP 3306端口(目标可以是RDS的安全组ID或IP),同时入向规则允许Pod网段的流量(EKS通常会自动配置,若有自定义规则需确保无拦截)。
4. 测试连通性
在EKS Pod内执行测试命令:
telnet <RDS端点> 3306 # 或使用mysql客户端 mysql -h <RDS端点> -u <数据库用户名> -p
完成后再用AWS可达性分析器重新验证。
额外检查项
- 确认RDS和EKS在同VPC的子网内,且子网的路由表无自定义拦截规则(同VPC内默认子网间互通)
- 若RDS开启了公网访问,确保Pod所在子网有NAT网关能访问公网(但更推荐用内网访问,关闭RDS公网访问)
内容的提问来源于stack exchange,提问作者The_Watcher
相关产品推荐
相关产品推荐

