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

Kubernetes下配置SPRING_CLOUD_CONFIG_URI网关报unknown host错误

问题根因

你两个Deployment都配置了hostNetwork: true,该参数会让Pod直接复用所在宿主机的网络栈,不会接入K8s集群内部网络,自然无法使用集群内置的CoreDNS完成Service名称解析,所以网关容器里解析configuration服务名时报unknown host错误。
你能在浏览器访问http://configuration/actuator/,大概率是你本地设备的hosts文件手动配置了configuration对应K8s节点的IP,但K8s节点宿主机的hosts没有对应配置,Pod用宿主机DNS规则自然解析失败。

可行解决方案

方案1(推荐):关闭hostNetwork

没有特殊的宿主机端口占用需求时,直接删除两个Deployment spec.template.spec下的hostNetwork: true配置即可。Pod接入K8s集群网络后会自动使用集群DNS解析服务名,http://configuration:8888可正常访问,也符合K8s的常规使用规范。

方案2:必须保留hostNetwork时的处理方式

如果业务必须要用到hostNetwork,可任选以下一种方式解决:

  • 给所有可能运行这两个Pod的K8s节点的/etc/hosts添加映射:[配置服务所在节点IP] configuration,注意配置服务漂移到其他节点时要同步更新所有节点的hosts规则
  • 直接修改网关Deployment的SPRING_CLOUD_CONFIG_URI环境变量值为http://[配置服务所在节点IP]:8888,同样要注意配置服务节点变动后的IP更新问题
  • 将configuration Service修改为NodePort/LoadBalancer类型,网关通过节点IP+NodePort/负载均衡IP访问配置服务

如果是为了让外部访问配置服务才开启的hostNetwork,更推荐用NodePort、Ingress这类标准的K8s服务暴露方式,既可以满足外部访问需求,又能保留集群内部的服务发现能力。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 23:24:03