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

无法向Minikube tunnel中运行的服务发起请求的故障排查

问题原因

访问超时由两个配置错误共同导致:

  1. Service资源缺失必填的selector字段,无法匹配到后端运行FastAPI的Pod,流量没有转发目标,所有请求都卡在转发层无法到达应用。
  2. Minikube启动时手动添加的--ports=127.0.0.1:30000:30000端口映射参数,和minikube service自动创建的LoadBalancer隧道逻辑冲突,端口被提前占用导致转发失效。
修复步骤
  • 修改fastapi.yaml中的Service配置段,补全selector字段,匹配Pod的标签:
# service
apiVersion: v1
kind: Service
metadata:
  labels:
    app: fastapi-server
  name: fastapi-server
spec:
  type: LoadBalancer
  selector:
    app: fastapi-server
  ports:
    - port: 8000
      targetPort: 8000
      protocol: TCP
      nodePort: 30000
  • 重置本地Minikube集群,移除冲突的启动参数:
minikube delete
minikube start
  • 重新应用部署配置:
kubectl delete -f fastapi.yaml
kubectl apply -f fastapi.yaml
  • 验证后端关联状态:
    执行kubectl get pods确认fastapi-server对应的Pod状态为Running,再执行kubectl get endpoints fastapi-server,如果返回结果中存在Pod的IP+8000端口的条目,说明Service已经正确关联后端。
  • 启动服务隧道:
    执行minikube service fastapi-server,命令会自动输出可直接访问的服务URL,访问后即可得到{"status":"OK"}的正常返回。
可选访问方式

如果不想使用LoadBalancer隧道,可以在部署完成后执行minikube ip获取Minikube节点的IP,直接访问http://<节点IP>:30000即可,不需要额外启动tunnel。

注意:使用Docker驱动运行Minikube时,启动命令中加的--ports参数只会映射到Minikube虚拟机本身,不会自动关联到Kubernetes的Service NodePort,提前加这个参数只会造成端口冲突,不需要配置。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 16:30:53