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

k3s Ingress本地服务器失效但云环境正常问题求助

本地K3s Ingress失效排查步骤

1. 确认Ingress Controller状态

K3s默认采用Traefik作为Ingress Controller,先检查组件运行状态:

kubectl get pods -n kube-system | grep traefik

确保Traefik Pod处于Running状态,无重启或异常。若Pod异常,查看日志定位问题:

kubectl logs -n kube-system <traefik-pod-name>

2. 检查Ingress资源状态

查看Ingress是否正常绑定后端服务:

kubectl describe ingress lastminute

重点关注Events字段,排查是否存在服务找不到、端口不匹配等报错;同时确认Address字段是否有值,本地环境下通常为节点IP或Traefik的NodePort/LoadBalancer地址。

3. 调整路径匹配规则

你的Ingress使用path: /auth/*和pathType: ImplementationSpecific,但Traefik(K3s默认)的路径匹配逻辑与云厂商Ingress Controller存在差异:
尝试将路径规则修改为以下两种方式之一:

  • 改用Prefix类型匹配所有/auth开头的路径:
    apiVersion: networking.k8s.io/v1
    kind: Ingress
    metadata:
      name: lastminute
    spec:
      rules:
        - http:
            paths:
              - path: /auth
                pathType: Prefix
                backend:
                  service:
                    name: auth-http
                    port:
                      number: 3001
    
  • 保留ImplementationSpecific,调整路径为Traefik兼容的格式:
    path: /auth(/|$)(.*)
    

4. 验证端口访问权限

本地服务器需确保Traefik的Ingress端口对外开放:
先查看Traefik暴露的NodePort:

kubectl get svc -n kube-system traefik

再通过节点IP+Traefik NodePort测试访问:

curl http://<节点IP>:<traefik-node-port>/auth/login

注意本地环境若无DNS解析,不能直接使用Ingress域名访问。

5. 检查服务后端端点

确认auth-http服务关联的Pod正常:

kubectl get endpoints auth-http

若Endpoints列表为空,说明服务与Pod的标签匹配存在问题,需核对Pod标签与服务selector是否一致。

6. 查看Traefik路由配置

进入Traefik Pod,检查路由规则是否正确加载:

kubectl exec -n kube-system <traefik-pod-name> -- traefik list routes

确认存在/auth开头的路由,且指向auth-http服务的3001端口。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 08:29:58