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

无法访问部署在AKS Pod中的SpringBoot应用求助

排查AKS中SpringBoot应用无法通过外部IP访问的问题

核心排查方向

因部署NGINX时相同操作可正常访问,说明AKS集群的LoadBalancer、基础网络配置无问题,问题集中在SpringBoot应用本身或端口映射细节上。

1. 确认SpringBoot应用监听的端口

SpringBoot默认监听8080端口,但你暴露Service时指定的是--port=80,需验证容器内应用实际监听端口:

  • 进入Pod内部检查端口监听状态:
    kubectl exec -it my-first-pod -- netstat -tulpn
    
  • 或直接在容器内测试本地访问:
    kubectl exec -it my-first-pod -- curl http://localhost:8080
    

若应用确实监听8080,需在暴露Service时补充target-port参数(关联容器内应用端口):

kubectl expose pod my-first-pod --type=LoadBalancer --port=80 --target-port=8080 --name=my-first-service

2. 检查SpringBoot应用的绑定地址

若应用代码或配置中绑定了127.0.0.1,则仅能容器内部访问,外部无法穿透:

  • 查看应用启动日志确认绑定地址:
    kubectl logs my-first-pod
    
    日志中需存在类似Tomcat started on port(s): 8080 (http) with context path ''的内容,且绑定地址为0.0.0.0。
  • 若绑定了127.0.0.1,修改application.properties或application.yml:
    server.address=0.0.0.0
    server.port=8080
    
    重新构建镜像后重新部署。

3. 验证Service到Pod的连通性

在集群内临时启动一个测试Pod,访问Service的ClusterIP确认转发是否正常:

kubectl run -it --rm busybox --image=busybox:1.36 -- wget -qO- http://10.0.184.166:80

若访问失败,说明Service与Pod的端口映射不匹配;若成功,则LoadBalancer到Service的转发大概率无问题。

4. 检查Pod的实际运行状态

虽然Pod显示Running,但可能应用未完全启动:

  • 查看Pod的事件日志:
    kubectl describe pod my-first-pod
    
    确认无启动失败或异常重启事件。
  • 若配置了健康检查探针,需验证探针路径、端口是否与应用实际情况匹配,未通过探针的Pod会被Service排除在流量转发列表外。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.06 17:22:12