You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Node.js应用连接本地单节点K8s的NATS服务报EAI_AGAIN错误

问题根因

  1. 域名解析环境不匹配:nats-service是Kubernetes集群内部的Service域名,仅集群内部运行的Pod可以通过CoreDNS完成解析,你当前直接在Windows宿主机运行NestJS应用,宿主机未接入K8s集群DNS体系,无法解析该域名,直接触发EAI_AGAIN DNS解析失败错误。
  2. 基础设施状态异常:你提供的docker version输出显示Docker Desktop的Linux引擎连接失败,说明Docker运行状态异常,你部署的NATS相关资源没有正常启动。从kubectl describe nodes的运行Pod列表也可以验证,default命名空间下没有任何NATS相关Pod在运行。

解决方案

根据你的运行需求选择对应方案:

方案1:NestJS应用保留在本地宿主机调试

  • 执行端口转发命令,将集群NATS服务端口映射到本地:
kubectl port-forward service/nats-service 4222:4222
  • 修改main.ts中的NATS连接地址为:
servers: 'nats://localhost:4222'

方案2:整套服务都部署在K8s集群内运行

  • 先重启Docker Desktop,执行docker version确认无报错,Docker运行状态恢复正常
  • 重新提交NATS配置:
kubectl apply -f <你的nats配置yaml文件名>

执行kubectl get pods -n default确认NATS Pod状态为Running

  • 将NestJS应用打包为Docker镜像,编写对应的Deployment配置部署到default命名空间下,不需要修改NATS连接地址,集群内可直接解析nats-service域名。

内容的提问来源于stack exchange,提问作者msrumon

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 18:45:00