kubernetes集群内的节点pod中getaddrinfo ENOENT错误

owfi6suc  于 2023-06-21  发布在  Kubernetes
关注(0)|答案(1)|浏览(130)

我在我们的项目中发现了一个问题,在K8s集群中使用Nodejs编写的不同微服务有时由于名称解析错误而导致http调用出错。
例如,当一个服务试图调用同一命名空间中另一个名为crud-service的服务时,会出现一个异常:

Error: getaddrinfo ENOENT crud-service
    at GetAddrInfoReqWrap.onlookup [as oncomplete] (node:dns:109:26)
    at GetAddrInfoReqWrap.callbackTrampoline (node:internal/async_hooks:130:17)

到目前为止,我们可以说:

  • 这种情况偶尔发生,没有明确的原因。
  • 如果我们尝试从pod解析主机crud-service,命令nslookup crud-service工作正常。
  • 此问题发生在许多Pod上,当我们尝试访问群集外部的主机时也是如此
  • 我们不认为这个问题与DNS服务器有关,在这种情况下,我们应该有一个EAI_AGAIN错误,如果我们调用一个无效的主机,我们应该有一个ENOTFOUND错误

你有办法解决这个问题吗?你知道如何知道ENOENT错误的原因吗?
谢谢你

py49o6xq

py49o6xq1#

我们找到了一个解决方案,即在群集上禁用Dynatrace。我们正在进一步调查。

相关问题