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

K3s局域网Nginx Ingress部署无连接问题排查求助

K3s禁用Traefik后Nginx Ingress访问故障排查步骤
  • 检查Nginx Ingress Controller运行状态

    • 执行kubectl get pods -n ingress-nginx,确认所有Controller Pod处于Running状态,无重启或CrashLoopBackOff情况
    • 查看Controller日志定位错误:kubectl logs -n ingress-nginx <nginx-ingress-controller-pod-name>,重点关注网络连接、权限相关报错
  • 验证Ingress与Service/Endpoint的关联

    • 执行kubectl describe ingress <your-ingress-name>,检查Rules字段中关联的Service是否存在,以及Endpoints字段是否包含后端Pod的IP地址
    • 单独确认Service的Endpoint状态:kubectl get endpoints <your-service-name>,确保列表中有正常的Pod IP,说明Service与Pod绑定正常
  • 核对Ingress Controller的端口配置

    • 若使用NodePort模式,执行kubectl get svc -n ingress-nginx,确认输出中的NodePort端口(通常为30000+范围)与你访问的端口一致
    • 若使用HostNetwork模式,在服务器本机执行netstat -tulpn | grep nginx,确认主机的80/443端口被nginx进程监听
  • 测试后端服务的可达性

    • 在Nginx Controller Pod内测试后端Service:kubectl exec -n ingress-nginx <controller-pod> -- curl http://<service-cluster-ip>:<port>,确认能正常返回内容,排除后端服务本身故障
    • 在服务器本机直接访问后端Pod:curl http://<pod-ip>:<port>,验证Pod自身服务运行正常
  • 检查K3s集群网络配置

    • 确认flannel网络组件正常运行:kubectl get pods -n kube-system -l app=flannel,所有Pod需处于Running状态
    • 单节点环境可跳过,多节点环境需验证节点间Pod网络互通:在任意节点ping其他节点的Pod IP,确认无网络隔离
  • 确认Ingress Class配置

    • 检查Ingress资源的spec.ingressClassName字段是否设置为nginx,K3s禁用Traefik后需明确指定Ingress Class
    • 查看集群中的IngressClass资源:kubectl get ingressclass,确保存在名为nginx的IngressClass,且Nginx Controller已关联该Class
  • 检查Nginx配置生成情况

    • 进入Controller Pod查看自动生成的配置:kubectl exec -n ingress-nginx <controller-pod> -- cat /etc/nginx/nginx.conf,搜索你的Ingress域名,确认存在对应的upstream配置,且upstream列表包含后端Pod的IP

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 10:35:17