【问题标题】:UnknownHostException from container in Kubernetes when accessing Aurora DB访问 Aurora DB 时来自 Kubernetes 中容器的 UnknownHostException
【发布时间】:2019-02-06 02:20:07
【问题描述】:

我使用 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]

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

【问题讨论】:

  • 可能是由于网络临时断开导致输入/输出操作中断,或者到 Aurora DB 的连接套接字已被其他进程突然关闭。
  • @mk_sta 谢谢,但其他应用程序没有任何问题。其他应用程序未在 AWS 中运行

标签: kubernetes amazon-aurora amazon-eks


【解决方案1】:

这看起来像是临时的 DNS 解析失败,无论是在路由 53 端(这可以解释为什么您的其他应用程序没有受到影响)或在客户端。除非您可以再次重现此问题,并在问题发生时获取更多日志/网络统计信息,否则很难追查到这一点。

【讨论】:

  • 谢谢,这真的很有意义。我不知道“AWS 规则 53”
猜你喜欢
  • 2017-05-23
  • 2019-10-13
  • 2017-02-21
  • 1970-01-01
  • 2015-08-21
  • 1970-01-01
  • 2019-12-18
  • 2022-08-07
  • 1970-01-01
相关资源
最近更新 更多