问题描述
在RDS实例中已经把容器的IP地址都设置了白名单,且EDAS中的容器IP网段是固定的,但是EDAS中的容器无法连通RDS实例。
问题原因
路由异常。
解决方案
登录容器服务节点,执行如下命令,测试RDS实例地址。
ping xxxxx.mysql.rds.aliyuncs.com
系统显示类似如下,RDS实例地址为172.x.x.34,但是返回的RDS实例地址为172.x.x.1。
PING xxxxx.mysql.rds.aliyuncs.com (172.x.x.34) 56(84) bytes of data. From izbpxxxxxxxz (172.x.x.1) icmp_seq=1 Destination Host Unreachable
登录容器,能Ping通公网地址,但是无法Ping通内网地址,如下图所示。
其中RDS实例解析的172.x.x.34和容器服务的IP段192.19.x.x类似,问题和路由有关,执行
route -n
命令,查看路由表,系统显示类似如下,172.x.x.0连接的是Docker中的一个接口,不是eth0。EDAS中的容器网段是固定的,无法变更。执行如下命令,做一个优先级更高的路由,将RDS实例所在的网段指向eth0,并将该命令添加到
/etc/rc.local
文件中,重启容器后也会生效。route add -net 172.x.x.0 netmask 255.255.255.0 gw 172.x.x.253
执行
route -n
命令,查看路由表,系统显示类似如下,确认恢复正常。
适用于
专有网络VPC
文档内容是否对您有帮助?