在kubernetes连连上没有这样的设备或地址出现错误

时间:2019-04-18 11:27:18

标签: kubernetes .net-core

我有一些作为微服务运行的dotnet核心应用程序运行到GKE(谷歌kubernetes引擎)中。

通常一切正常,但是有时,如果我的微服务未使用,则我的应用程序会关闭(与终端上的CTRL + C相同的行为)。

我知道这是kubernetes的行为,但是如果我请求未运行的应用程序,我的第一个请求将返回错误:“ 没有这样的设备或地址”或超时错误。

我将发布一些日志和设置:

program.cs setup

gateway error log

microservice log

timeout error

application start running after sometime with database timeout error

1 个答案:

答案 0 :(得分:1)

发生这种情况的关键是此记录的错误:

TNS: Connect timeout occured ---> OracleInternal.Network....

由于未使用您的应用程序,因此Oracle数据库只是关闭了它的空闲连接。要解决此问题,您可以做两件事:

  1. 处理应用程序内部的断开连接以重新连接。
  2. 定义livenessProbe以在应用程序关闭后自动重新启动Pod。
  3. 让您的应用程序不时对连接做些事情->这也可以通过探针来完成。
  4. 配置您的Oracle数据库不关闭空闲连接。