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

借助路由器实现MicroK8s本地Kubernetes集群端口转发故障排查

MicroK8s集群Ingress外部设备访问故障排查

一、先查Ingress Controller的网络暴露配置

  • 确认Ingress Controller的Service类型:MicroK8s默认用nginx作为Ingress Controller,执行 microk8s kubectl get svc -n ingress,看TYPE列是NodePort还是LoadBalancer:
    • 如果是NodePort:路由器转发的端口必须和Service的NODE_PORT列数值完全一致,别搞混端口号
    • 如果是LoadBalancer:检查EXTERNAL-IP是否为集群节点的本地IP(MicroK8s依赖MetalLB实现LoadBalancer,若未配置IP池,这里会显示pending,得先补配MetalLB)
  • 验证Ingress Controller监听状态:在集群节点上执行 ss -tulnp | grep nginx,确保80/443或对应NodePort处于LISTEN状态。若未监听,重启Ingress组件:microk8s disable ingress && microk8s enable ingress
  • 排查节点防火墙:本地电脑可能因内网白名单或防火墙规则放行,但其他设备的请求可能被节点防火墙拦截。用ufw status(Ubuntu默认防火墙)查看是否开放80、443或对应NodePort;若用firewalld,执行firewall-cmd --list-all确认规则,未开放则添加:ufw allow 80/tcp

二、验证Ingress资源本身的配置

  • 检查Ingress的Host匹配规则:执行 microk8s kubectl get ingress,看HOSTS列内容。你本地改hosts是把域名指向集群节点IP,其他设备访问时要么同步改hosts,要么用路由器公网IP/公网域名,此时Ingress的host必须与这个公网域名一致,或临时将Ingress的host设为*(仅测试用,禁止生产环境使用)
  • 查看Ingress后端状态:执行 microk8s kubectl describe ingress <你的Ingress名称>,检查Rules里的host、path是否正确,Backend的ENDPOINTS列是否有可用Pod IP。若ENDPOINTS为空,说明后端服务未正常启动,先修复服务
  • 节点本地测试Ingress:在集群节点上执行 curl -H "Host: <你的Ingress Host>" http://localhost,能返回正常内容则说明Ingress本身配置没问题,问题出在外部流量路由环节

三、排查网络路由与NAT问题

  • 确认路由器端口转发目标IP:确保转发的是集群节点的本地IP(如192.168.1.100),部分路由器会限制转发目标的IP段,别写错IP地址
  • 检查集群SNAT配置:外部设备通过公网IP访问时,集群返回的流量需正确路由回路由器。MicroK8s默认用Calico CNI,执行 microk8s kubectl get configmap calico-config -n kube-system -o yaml,查看data.snatOutgoing是否为true,若为false则修改为true,随后重启Calico组件
  • 抓包验证流量到达情况:在集群节点上执行 tcpdump -i any port 80,然后用其他设备访问路由器公网IP:80,观察数据包:
    • 未抓到数据包:重新确认路由器转发的端口、目标IP,哪怕你说Python服务正常,也再核对一遍Python服务是否和集群节点在同一IP上
    • 抓到但无响应:说明Ingress Controller或后端服务未处理请求,回到第一步排查Ingress Controller状态

四、常见坑点总结

  • 路由器转发端口与Ingress Controller的NodePort不匹配
  • 集群节点防火墙未开放对应端口
  • Ingress的Host配置与其他设备访问用的域名/IP不匹配
  • Calico的SNAT未开启,导致返回流量无法正常流出集群
  • 其他设备未正确解析域名(如你本地改了hosts,但其他设备未同步修改,也未配置公网DNS)

内容的提问来源于stack exchange,提问作者Gürkan Güran

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 03:23:26