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

本地开发环境使用Ingress暴露K8s集群及访问无响应问题求解

问题排查与解决步骤

1. 修正Ingress配置错误

你当前的Ingress配置存在两处直接导致访问异常的问题:

  • 路径匹配规则缺失:你仅配置了/auth前缀的路由规则,直接访问my-domain.dev根路径没有匹配的后端服务,自然无响应
  • 重写注解配置错误:你使用了nginx.ingress.kubernetes.io/rewrite-target: /$1,但path规则里没有定义捕获组,会导致路径重写后不符合预期
    修改后的ingress-srv.yaml参考:
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: example-ingress
  annotations:
    # 新增捕获组,匹配/auth之后的所有路径重写到服务根路径
    nginx.ingress.kubernetes.io/rewrite-target: /$2
spec:
  rules:
    - host: my-domain.dev
      http:
        paths:
          # path修改为带捕获组的规则
          - path: /auth(/|$)(.*)
            pathType: Prefix
            backend:
              service:
                name: auth-srv
                port:
                  number: 3003

修改后重新应用配置:kubectl apply -f ingress-srv.yaml

2. 验证Minikube Ingress连通性

minikube的ingress默认需要确认是否正确暴露了80/443端口,按以下步骤检查:

  • 先直接访问ingress地址验证端口连通性:curl 182.138.19.21,如果返回nginx 404页面说明ingress控制器本身正常运行
  • 如果上述命令无响应,执行minikube addons list确认ingress插件状态为enabled,如果异常可以先禁用再重新开启:
    minikube addons disable ingress
    minikube addons enable ingress
    
  • 大部分桌面环境下minikube的ingress需要通过tunnel命令暴露到宿主机,新开一个终端窗口执行:minikube tunnel,执行期间不要关闭该终端,再重新测试访问

3. 验证后端服务可用性

先在集群内部验证auth-srv是否正常响应,排除服务本身故障:

  • 启动一个临时测试pod执行curl测试:
    kubectl run -it --rm --image=curlimages/curl testcurl -- curl auth-srv:3003
    
  • 如果上述命令无返回,说明auth服务本身存在问题,先检查Deployment的pod运行状态:kubectl get pods | grep auth-depl,再查看pod日志定位问题:kubectl logs <替换为实际的auth-pod名称>

4. 访问测试

完成上述配置后,使用正确的路径测试:

  • curl测试:curl my-domain.dev/auth
  • 浏览器访问:直接输入http://my-domain.dev/auth即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 01:39:01