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

K8s创建mongo-express部署时Pod无法连接MongoDB问题求助

问题根因
  • 错误日志中getaddrinfo ENOTFOUND mongodb-service提示K8s集群DNS无法解析mongodb-service服务域名,核心问题是服务命名不匹配:
    • 你创建的MongoDB Service配置中metadata.name为mongo-service
    • ConfigMap中配置的database_url值为mongodb-service,和实际服务名不一致,导致mongo-express读取到错误的数据库连接地址。
修复步骤
  1. 统一服务命名,任选一种修改方式即可:
    • 方式一:修改ConfigMap配置,将database_url的值改为实际的MongoDB服务名
      apiVersion: v1
      kind: ConfigMap
      metadata:
        name: mongodb-configmap
      data:
        database_url: mongo-service
      
    • 方式二:修改MongoDB Service的metadata.name为mongodb-service,和ConfigMap配置保持一致
  2. 应用修改后的配置文件,示例命令:
    kubectl apply -f <你的配置文件名>
  3. 重启mongo-express Deployment让新配置生效:
    kubectl rollout restart deployment mongo-express
  4. 验证修复结果,待Pod重建完成后查看运行日志,出现Mongo Express server listening at http://0.0.0.0:8081即为连接成功:
    kubectl logs <mongo-express新Pod名称>
附加排查点

如果修改命名后仍无法连接,可按以下步骤排查:

  • 执行kubectl get pods、kubectl get svc确认MongoDB相关Pod、Service处于正常运行状态
  • 若mongo-express和MongoDB Service不在同一个命名空间下,需要使用<服务名>.<命名空间>.svc.cluster.local的完整域名格式配置连接地址

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 08:39:02