访问Aurora数据库时Kubernetes中容器的UnknownHostException

时间:2019-01-31 08:36:07

标签: kubernetes amazon-rds-aurora amazon-eks

我使用EKS创建了一个kubernetes集群,并在其中部署了具有3个复制的应用程序。我的应用程序连接到可通过公共URL访问的aurora DB实例。由于某种原因,今天早上(首次使用该应用程序)在我的pod日志中出现了UnknownHostException,如下所示:

2019-01-30 08:34:47.352  WARN 5 --- [onnection adder] unknown.jul.logger                       : IOException occurred while connecting to my-database-aurora-psql.cc3ft0tcxorz.eu-north-1.rds.amazonaws.com:5999

java.net.UnknownHostException: my-database-aurora-psql.cc3ft0tcxorz.eu-north-1.rds.amazonaws.com
at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:184) ~[na:1.8.0_181]
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392) ~[na:1.8.0_181]
at java.net.Socket.connect(Socket.java:589) ~[na:1.8.0_181]
at org.postgresql.core.PGStream.<init>(PGStream.java:69) ~[postgresql-42.2.1.jar!/:42.2.1]
at org.postgresql.core.v3.ConnectionFactoryImpl.openConnectionImpl(ConnectionFactoryImpl.java:158) ~[postgresql-42.2.1.jar!/:42.2.1]
at org.postgresql.core.ConnectionFactory.openConnection(ConnectionFactory.java:49) [postgresql-42.2.1.jar!/:42.2.1]
at org.postgresql.jdbc.PgConnection.<init>(PgConnection.java:195) [postgresql-42.2.1.jar!/:42.2.1]
at org.postgresql.Driver.makeConnection(Driver.java:452) [postgresql-42.2.1.jar!/:42.2.1]
at org.postgresql.Driver.connect(Driver.java:254) [postgresql-42.2.1.jar!/:42.2.1]
at com.zaxxer.hikari.util.DriverDataSource.getConnection(DriverDataSource.java:117) [HikariCP-2.7.8.jar!/:na]
at com.zaxxer.hikari.pool.PoolBase.newConnection(PoolBase.java:365) [HikariCP-2.7.8.jar!/:na]
at com.zaxxer.hikari.pool.PoolBase.newPoolEntry(PoolBase.java:194) [HikariCP-2.7.8.jar!/:na]
at com.zaxxer.hikari.pool.HikariPool.createPoolEntry(HikariPool.java:460) [HikariCP-2.7.8.jar!/:na]
at com.zaxxer.hikari.pool.HikariPool.access$100(HikariPool.java:71) [HikariCP-2.7.8.jar!/:na]
at com.zaxxer.hikari.pool.HikariPool$PoolEntryCreator.call(HikariPool.java:697) [HikariCP-2.7.8.jar!/:na]
at com.zaxxer.hikari.pool.HikariPool$PoolEntryCreator.call(HikariPool.java:683) [HikariCP-2.7.8.jar!/:na]
at java.util.concurrent.FutureTask.run(FutureTask.java:266) [na:1.8.0_181]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [na:1.8.0_181]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [na:1.8.0_181]
at java.lang.Thread.run(Thread.java:748) [na:1.8.0_181]

我有另一个使用此数据库的应用程序,访问此数据库网址没有任何问题。从控制台中我还可以看到数据库从未崩溃。 Aurora DB与EKS Kubernetes集群在同一AWS区域中运行。这与某些内部网络问题有关吗?在这种情况下,EKS是否使用内部路由?我在想,也许某个内部路由不起作用,因为该群集中未运行的另一个应用程序(在AWS中根本没有运行)没有此问题。

1 个答案:

答案 0 :(得分:1)

在路由53端(这可以解释为什么其他应用程序不受影响的原因)或客户端,这通常看起来是暂时的DNS解析失败。除非能够再次重现此问题,并且在问题发生时获取更多日志/ netstats,否则很难找到答案。