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

部署在Docker Kubernetes上的DotNet Core微服务本地无法访问

排查Kubernetes部署后localhost访问404的问题

以下是针对性的排查步骤,按顺序执行:

  • 检查Service端口映射与类型
    仔细核对kubectl get services的输出细节:

    • 前端服务的Type是否为LoadBalancer(Docker Desktop中该类型会自动映射到localhost)或NodePort?
    • 若为LoadBalancer,查看PORT(S)列格式(如80:30xxxx/TCP),此时直接访问localhost即可;若为NodePort,则需访问localhost:<NodePort数值>,而非单纯localhost。
    • 确认TargetPort与前端容器暴露的端口一致(多数教程中前端容器暴露80端口)。
  • 验证Pod运行状态
    执行kubectl get pods,检查所有backend和frontend Pod的STATUS是否为Running,READY状态是否符合预期(如1/1)。

    • 若Pod状态异常(如CrashLoopBackOff),执行kubectl logs <pod-name>查看容器日志,定位启动失败原因。
  • 测试容器内部服务可用性
    进入前端Pod内部,直接测试服务是否正常响应:

    kubectl exec -it <frontend-pod-name> -- /bin/sh
    # 假设容器内服务端口为80,执行
    curl localhost:80
    

    如果返回404,说明容器镜像本身存在问题(比如构建时静态文件未正确打包、服务启动配置错误),需重新检查镜像构建流程。
    对后端Pod执行同样测试,确认接口能正常返回数据。

  • 检查前端后端地址配置
    前端微服务通常需要配置后端服务的访问地址,Kubernetes内部可通过Service名称直接访问(如http://backend-service:5000)。进入前端Pod后,查看配置文件或环境变量,确认后端地址是否正确指向Kubernetes内部的backend Service。

  • 排查Ingress配置(若使用)
    如果教程中通过Ingress路由到localhost:

    1. 执行kubectl get ingress,确认Ingress资源的ADDRESS为localhost,且路由规则正确映射到前端服务。
    2. 检查Docker Desktop设置中是否已启用Ingress控制器(路径:Settings > Kubernetes > Enable ingress)。
  • 检查本地端口占用
    确认本地80端口未被其他程序占用:

    • Windows:执行netstat -ano | findstr :80,查看是否有其他进程占用端口。
    • Mac/Linux:执行lsof -i :80,检查端口占用情况。若被占用,停止对应进程或修改Kubernetes服务端口。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 23:17:16