AWS上Kubernetes部署应用连接SQL Server RDS超时问题求助
排查Kubernetes应用连接SQL Server RDS超时问题
1. 确认RDS实例基础配置
- 检查应用连接配置中的RDS端点:错误信息里host字段为空,先确认是否遗漏或拼写错误了RDS的端点地址,这是最容易忽略的点。
- 验证RDS的连接设置:登录RDS控制台,进入实例的「连接与安全性」页面,确认默认端口1433已开启;如果是通过VPC对等访问,建议将「公有可访问性」设为「否」,避免不必要的网络暴露。
2. 校验VPC对等连接的有效性
- 检查双方VPC的路由表:
- 应用所在VPC的路由表,必须添加指向RDS所在VPC CIDR的路由,目标为VPC对等连接ID;
- RDS所在VPC的路由表,同样要添加指向应用所在VPC CIDR的路由,目标为VPC对等连接ID。
- 确认对等连接状态:在VPC控制台查看对等连接是否处于「已接受」状态,未被拒绝或处于待接受状态。
3. Kubernetes集群网络排查
- 在EC2节点上测试连通性:
执行命令telnet <RDS端点> 1433或nc -zv <RDS端点> 1433,确认节点能正常访问RDS端口。如果节点连不通,问题出在VPC/安全组层面;如果节点能通,再排查Pod层面。 - 测试Pod内部连通性:
进入应用Pod内部,执行上述telnet/nc命令。如果Pod连不通,需检查:- K8s网络插件(如Calico、Flannel)是否允许Pod访问外部VPC资源;
- 是否存在NetworkPolicy限制了Pod的出站流量,阻断了1433端口的访问。
4. 安全组与NACL深层检查
- 安全组双向规则确认:
- RDS实例的安全组出站规则是否允许返回流量(默认全放行,但需确认未被修改);
- 应用所在EC2节点/Pod的安全组出站规则是否明确允许访问1433端口。
- 检查VPC网络访问控制列表(NACL):NACL是无状态规则,需同时配置入站和出站规则,允许1433端口的TCP流量(包括应用到RDS的请求,以及RDS到应用的响应)。
5. RDS实例状态与日志验证
- 确认RDS实例状态:检查实例是否处于「可用」状态,排除备份、维护或故障恢复等导致的不可用情况。
- 查看RDS日志:在RDS控制台的「日志与事件」中查看SQL Server错误日志,确认是否有连接拒绝记录,或实例本身的TCP/IP配置异常。
内容的提问来源于stack exchange,提问作者Praveen Tripathi
相关产品推荐
相关产品推荐

