Azure AKS集群突然无法连接Azure PostgreSQL数据库故障排查问询
AKS集群无法连接Azure PostgreSQL故障原因分析
故障现象
- 已稳定运行8天的环境突发Azure AKS集群无法连接Azure PostgreSQL故障
- 直连数据库返回连接超时错误,具体报错如下:
postgres@name-prod-psql-197fb74f68-9psrh:/$ psql "host=name-prod.postgres.database.azure.com port=5432 dbname=prod user=user password=XXX" psql: error: could not connect to server: Connection timed out Is the server running on host "name-prod.postgres.database.azure.com" (10.110.0.4) and accepting TCP/IP connections on port 5432?
- POD内执行traceroute路由跟踪,第一跳为集群内服务地址,后续所有跳均无响应,路由全中断:
[root@utils /]# traceroute name-prod.postgres.database.azure.com traceroute to name-prod.postgres.database.azure.com (10.110.0.4), 30 hops max, 60 byte packets 1 10-240-0-226.prometheus-node-exporter.prometheus.svc.cluster.local (10.240.0.226) 0.037 ms 0.019 ms 0.009 ms 2 * * * 3 * * * 4 * * * 5 * * * 6 * * * 7 * * * 8 * * * 9 * * * 10 * * * 11 * * * 12 * * * 13 * * * 14 * * * 15 * * * 16 * * * 17 * * * 18 * * * 19 * * * 20 * * * 21 * * * 22 * * * 23 * * * 24 * * * 25 * * * 26 * * * 27 * * * 28 * * * 29 * * * 30 * * *
已知环境配置
- Azure PostgreSQL部署在
10.110.0.0/16子网 - AKS集群位于
prod-private-eks子网,网段为10.240.0.0/16,已配置Microsoft.Sql服务端点
可能故障原因
安全规则变更类
- AKS子网关联的NSG最近是否新增了出方向5432端口的拒绝规则,或者限制了访问
10.110.0.0/16网段的流量 - PostgreSQL子网关联的NSG是否移除了允许AKS网段
10.240.0.0/16入方向5432端口的放行规则 - AKS集群内部是否新增了网络策略(NetworkPolicy),禁止了业务POD访问外部数据库网段的流量
服务端点配置异常类
- 检查
prod-private-aks子网的Microsoft.Sql服务端点配置是否被意外移除,或者关联的路由表发生变更 - 检查Azure PostgreSQL的防火墙配置,是否移除了允许AKS子网访问的规则,或者开启专用链接后配置错误,导致原有服务端点访问失效
路由故障类
- AKS子网关联的路由表是否发生变更,是否丢失了去往
10.110.0.0/16网段的有效路由 - 是否新增了错误的路由规则,将PostgreSQL的网段流量指向了不可达的下一跳
数据库侧故障类
- 检查Azure PostgreSQL实例的运行状态,是否处于停机/维护/故障转移状态,导致服务不可用
- 检查PostgreSQL实例是否触发了连接数上限,导致新连接被拒绝超时
解析异常类
- 确认POD内解析
name-prod.postgres.database.azure.com得到的10.110.0.4地址与PostgreSQL实例的实际内网地址一致,避免解析到错误地址导致连接失败
内容的提问来源于stack exchange,提问作者DmitrySemenov
相关产品推荐
相关产品推荐

